因数据迁移,须要将EXCEL的内容导到SQLSERVER,弄了好多次弄不好,不是这个出错就是那个出错,太浪费时间了,网上的内容也是大同小异却没有一个完整的说法,或别的东东
本着服务大众的精神,也为了自己以后忘记不会没地方找,所以在这里记上一笔,很简单的,如果你要导入的表没有索引,也就是自动增加的那个ID,那么直接类例于这句就行了
insert into goods select * from openrowset('microsoft.jet.oledb.4.0','excel 5.0;hdr=yes;database=c:\2009.xls',sheet1$)
解释:以上,第一个goods是SQLSERVER中的数据库存中的表,后面是你的EXCEL放的路径和哪个表的内容
如果你的表格有索引,那么要导入数据就要把须要的数据列名写上去,如下所示
insert into goods(code,name,type,unit,begamount) select f_code,F_name,F_type,F_unit,F_begamount from openrowset('microsoft.jet.oledb.4.0','excel 5.0;hdr=yes;database=C:\2009.xls',sheet1$)
解释:以上goods还是数据库存中的后,goods后面的括号里的内容是表中要插入数据的列,而select后面是你的EXCEL列中的标题,databae=后面还是你表格的路径跟要导入的表
不然会出现以下错误
服务器: 消息 8101,级别 16,状态 1,行 1
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'goods' 中为标识列指定显式值。
