Excel中数据导入SQL时,如果目的表存在自增主键,如何处理?

qiming_fawcom 2003-11-04 02:38:01
Excel中数据导入SQL时,如果目的表存在自增主键,利用自带工具“导入和导出数据”,如果将自增字段忽略,则出现无法将null倒入id(自增字段)中错误。那么,如何处理?
...全文
1140 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiming_fawcom 2003-11-07
  • 打赏
  • 举报
回复
zjcxc(邹建)
手工导入,如何忽略ID字段,其中ID为主键,无法忽略的
zdleek 2003-11-07
  • 打赏
  • 举报
回复
既然是自增字段,忽略它是没问题的,它会自动被dbms赋值的
qiming_fawcom 2003-11-07
  • 打赏
  • 举报
回复
gz
qiming_fawcom 2003-11-05
  • 打赏
  • 举报
回复
nobody?
zjcxc 元老 2003-11-05
  • 打赏
  • 举报
回复
--如果EXCEL表和接受数据的表存在字段名对应的关系,你可以用生成SQL语句的方法来解决字段列表的问题:

例如:

declare @sql varchar(80000)
set @sql=''
select @sql=@sql+','+name from syscolumns where object_id('你的表')=id and stauts<>0x80

set @sql=substring(@sql,2,8000)
exec('insert into 你的表('+@sql+') select '+@sql+' from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0''
,''Excel 5.0;HDR=YES;DATABASE=F:\My Documents\客户资料.xls'',全部客户$)
')
zjcxc 元老 2003-11-05
  • 打赏
  • 举报
回复
还是在查询分析器中,手工导入,忽略ID字段吧.
列的问题,你自己对应写就行了.


insert 你的表 (除了id列的列1,列2)
SELECT 列1,列2
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=F:\My Documents\客户资料.xls',全部客户$)
qiming_fawcom 2003-11-04
  • 打赏
  • 举报
回复
学习学习
lvltt 2003-11-04
  • 打赏
  • 举报
回复
学习
qiming_fawcom 2003-11-04
  • 打赏
  • 举报
回复
3ks.不过,sdhdy(大江东去...) 的做法操作完成后,无法对后续导入数据实现其ID自增。
pengdali(大力 V3.0) ,你的做法不错,不过excel字段与sql字段不是一一对应的,需要重新设置映射关系。
如何解决呢。我觉得sql导数据工具应该能够实现这样的操作,很基本的。就是在追加数据中添上自增属性而已。应该有很简单的方法。
希望大家帮忙
sdhdy 2003-11-04
  • 打赏
  • 举报
回复
还要使该字段先为null
pengdali 2003-11-04
  • 打赏
  • 举报
回复
insert 你的表 (除了id列的列1,列2)
SELECT 列1,列2
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
sdhdy 2003-11-04
  • 打赏
  • 举报
回复
先把该字段的自增属性去掉,导完后再加上自增属性

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧