不管是把Sql Server表的资料插入Excel:
Insert
Into
OpenRowSet
(
'
Microsoft.Jet.OLEDB.4.0
'
,
'
Excel 5.0;hdr=Yes;DataBase=C:/test.xls
'
,test$)
select
*
from
T_test
还是把Excel的资料插入Sql Server表:
Insert
Into
T_test
select
*
from
OpenRowSet
(
'
Microsoft.Jet.OLEDB.4.0
'
,
'
Excel 5.0;hdr=Yes;DataBase=C:/test.xls
'
,test$)
都有可能会遇见字段混乱的问题,
即:Sql Server表和Excel的字段顺序不一样!
其实,出现这样的问题,是对
OpenRowSet 的使用不甚了解引起的!
hdr = Yes 表示Excel内容第一行作为内容字段而不是字段列,
所以,把 hdr = Yes 改为 hdr = No 即可!
Feedback
错,HDR参数并不能解决字段名排序的问题。
正确地应为:
select * into T_Test from OpenRowSet('Microsoft.Jet.OLEDB.4.0','Excel 8.0;hdr=No;IMEX=1;DataBase=C:/test.xls','select * from [test$]')
HDR=YES 有两个值:YES/NO,表示第一行是否字段名,默认是YES,第一行是字段名;
IMEX=1 解决数字与字符混合时,识别不正常的情况
解释 HDR :
1. HDR 只在" 把Excel的资料插入Sql Server表 "才有效!!
2. 如果是" 把Sql Server表的资料插入Excel " ,则Excel要建跟Sql Server表同等数量的字段(名称可以不一样), HDR这个参数无效.
3楼说的正确
不知道能否通过SQL SERVER更新、删除excel中数据