1, 插入
insert into OPENROWSET('MICROSOFT.ace.OLEDB.12.0'
,'Excel 5.0;HDR=YES;DATABASE=D:\Users\bs_ganqing\Desktop\test.xls',
Sheet2$) select * from MyTest.dbo.Customer
2, 更新
UPDATE OPENROWSET('Microsoft.ACE.OleDb.12.0',
'Excel 5.0;HDR=YES;Database=D:\Users\bs_ganqing\Desktop\test.xls;',
'SELECThh,F2,F3 FROM [Sheet2$]')
SET hh ='2333', F2='name',F3='18'
WHERE 2 = 2
3, 查询
select * from OPENROWSET('Microsoft.ACE.OleDb.12.0',
'Excel5.0;HDR=YES;Database=D:\Users\bs_ganqing\Desktop\test.xls;',
'SELECT* FROM [Sheet2$]')
1.查询结果与EXCEL单元格的格式有很大关系;
2.路径中的"/"和"\"意义相同;
3.对于Excel里含有诸如'-'之类的特殊字符的工作表,在OPENDATASOURCE中无论如何都无法支持,而openrowset则可解决这个问题
特别注意
Extended Properties='Excel 8.0;HDR=yes;IMEX=1'
A: HDR ( HeaDer Row )设置
若指定值为Yes,代表 Excel 档中的工作表第一行是栏位名称
若指定值為 No,代表 Excel 档中的工作表第一行就是資料了,沒有栏位名称
B:IMEX ( IMport EXport mode )设置
IMEX 有三种模式,各自引起的读写行为也不同,容後再述:
0 is Export mode 为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。
1 is Import mode 为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。
2 is Linked mode(full update capabilities) 为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。
原文参考:http://blog.sina.com.cn/s/blog_6399df820102vyy8.html