SQL SERVER中openrowset与opendatasource的区别
SQL SERVER中openrowset与opendatasource的区别:
操作方法
- 01
SQL SERVER中openrowset与opendatasource的区别: openrowset 查询:ok select * from openrowset('Microsoft.Jet.OLEDB.4.0', 'Excel 5.0;Database=c:/test.xls;User ID=;Password=;', 'select * from [sheet1$]') 或者:ok select * from openrowset('Microsoft.Jet.OLEDB.4.0', 'Excel 5.0;Database=c:/test.xls;User ID=;Password=;', [sheet1$]) 插入:ok insert openrowset('Microsoft.Jet.OLEDB.4.0', 'Excel 5.0;Database=c:/test.xls;User ID=;Password=;', 'select * from [sheet1$]') select '109','ccc','202' 更新:ok update openrowset('Microsoft.Jet.OLEDB.4.0', 'Excel 5.0;Database=c:/test.xls;User ID=;Password=;', 'select * from [sheet1$]') set a2='bbb',a3=345 where a1= 101 删除: 不支持 opendatasource 查询:ok SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source="c:/test.xls";Extended Properties="Excel 8.0;HDR=yes;IMEX=2;"')...[sheet1$] 插入:ok insert OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=c:/test.xls; Extended Properties="Excel 8.0;HDR=yes;IMEX=2;"')...[sheet1$] select '102','ccc','202' 更新:ok update OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=c:/test.xls;Extended Properties="Excel 8.0;HDR=yes;IMEX=2;"')...[sheet1$] set a2='ddd',a3='203' where a2='ccc' 对数字字段不支持 删除: 不支持 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 档案可同时支援“读取”与“写入”用途。