select * from OpenRowSet(''microsoft.jet.oledb.4.0'',''Excel 8.0;HDR=yes;database=c:\book1.xls;'',''select * from [Sheet1$]'') where c like ''%f%''
select * from
OPENROWSET(''MICROSOFT.JET.OLEDB.4.0''
,''Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\book1.xls'',[sheet1$])
1)hdr=yes时可以把xls的第1行作为字段看待,如第1个中hdr=no的话,where时就会报错
2)[]和美圆$必须要,否则M$可不认这个账
2、修改Execl
update OpenRowSet(''microsoft.jet.oledb.4.0'',''Excel 8.0;hdr=yes;database=c:\book1.xls;'',''select * from [Sheet1$]'')
set a=''erquan'' where c like ''%f%''
3、导入导出
insert into OpenRowSet(''microsoft.jet.oledb.4.0'',''Excel 8.0;hdr=yes;database=c:\book1.xls;'',''select * from [Sheet2$]'')(id,name)
select id,name from serv_user
或BCP实现,BCP是 sql自带的一个数据转移工具,可以直接在命令行下运行
master..xp_cmdshell''bcp "serv-htjs.dbo.serv_user" out "c:\book2.xls" -c -q -S"." -U"sa" -P"sa"''
从Excel向SQLServer导入:
select * into serv_user_bak
from OpenRowSet(''microsoft.jet.oledb.4.0'',''Excel 8.0;HDR=yes;database=c:\book1.xls;'',''select * from [Sheet1$]'')
如果表serv_user_bak不存在,则创建 最后也可以通过数据库联接字符串直接连接"provider = microsoft.jet.oledb.4.0;data source=c:\\excel.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";在程序中,将上述连接字符串用于创建一个新的数据库连接,然后就可以正常使用sql语句进行Excel查询了
如果上述连接池会出错,请去掉hdr=yes