文章来源:http://blog.csdn.net/ba5590484/archive/2005/01/29/273488.aspx
一、SQLServer和Access
1、查询Access中数据的方法:
select * from OpenRowSet( 'microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from Access表' )
或
select * from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\DB2.mdb";User ID=Admin;Password=' )...Access表
2、从SQLServer向Access写数据:
insert into OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from Accee表')
select * from SQLServer表
或用BCP
master..xp_cmdshell'bcp "serv-htjs.dbo.serv_user" out "c:\db3.mdb" -c -q -S"." -U"sa" -P"sa"'
上面的区别主要是:OpenRowSet需要mdb和表存在,BCP会在不存在的时候生成该mdb
3、从Access向SQLServer写数据:有了上面的基础,这个就很简单了
insert into SQLServer表 select * from
OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from Accee表')
或用BCP
master..xp_cmdshell'bcp "serv-htjs.dbo.serv_user" in "c:\db3.mdb" -c -q -S"." -U"sa" -P"sa"'
4、删除Access数据:
delete from OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from Access表')
where 条件
5 修改Access数据:
update OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from Access表'')
set 列名=列值
where 条件
二 Sql Server与Excel
[注意:一般要关闭Excel,以免发生不必要的错误信息]
1、向Excel查询
select * from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=c:\book1.xls;','select * from [Sheet1$]')
where 条件
或
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\book1.xls',[sheet1$]) where 条件
注意:
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 列名= 列值
where 条件
3、导入导出
从SqlServer导入Excel
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 SqlServer表
或BCP
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$]')
三 SqlServer与文本文件的导入导出
1 SqlServer数据导出到文本文件:
EXEC master..xp_cmdshell 'bcp "dbName..TableName" out c:\DT.txt -c -S"Server名" -U"用户" -P"密码"' --双引号可以去掉
比如下面实际例子:
EXEC master..xp_cmdshell 'bcp MyTest..AS400 out c:\DT.txt -c -S172.16.3.60 -Usa -Pzhangzs'
2 文本数据导进SqlServer中。
EXEC master..xp_cmdshell 'bcp "dbName..TableName" in c:\DT.txt -c -Sserver名 -U用户 -P密码' ---注意要事先有表存在,且列数一致
比如下面实际例子:
EXEC master..xp_cmdshell 'bcp "MyTest..AS400" in c:\DT.txt -c -S172.16.3.60 -Usa -Pzhangzs'