OPENROWSET(''MSDASQL.1'', ''Driver=Microsoft Visual FoxPro Driver; SourceDB=c:\db; SourceType=DBF'', ''SELECT * FROM [b.dbf]'')
最后一个参数查询foxpro表b.dbf,读者可以通过where条件对b.dbf进行过滤。如果将INSERT INTO、SELECT INTO和OPENDATASOURCE或OPENROWSET一起使用,就可以使SQL Server数据库和其它类型的数据库之间进行数据导入导出。下面介绍如何使用这两个函数在SQL Server数据库和其它类型的数据库之间进行数据导入导出。
(1).SQL Server数据库和SQL Server数据库之间的数据导入导出。
导入数据
SELECT * INTO authors1 FROM OPENDATASOURCE( ''SQLOLEDB'', ''Data Source=192.168.18.252;User ID=sa;Password=abc'' ).pubs.dbo.authors
导出数据
INSERT INTO OPENDATASOURCE( ''SQLOLEDB'', ''Data Source=192.168.18.252;User ID=sa;Password=abc'' ).test.dbo.authors select * from pubs.dbo.authors
在这条语句中OPENDATASOURCE()可以理解为SQL Server的一个服务,.pubs.dbo.authors是这个服务管理的一个数据库的一个表authors。使用INSERT INTO时OPENDATASOURCE()后跟的表必须存在。
也可以将以上的OPENDATASOURCE换成OPENROWSET
INSERT INTO OPENROWSET(''SQLOLEDB'',''192.168.18.252'';''sa'';''abc'', ''select * from test.dbo.kk'') SELECT * FROM pubs.dbo.authors
使用OPENROWSET要注意一点,''192.168.18.252'';''sa'';''abc''中间是";",而不是","。OPENDATASOURCE和OPENROWSET都不接受参数变量。
(2). SQL Server数据库和Access数据库之间的数据导入导出。
导入数据
SELECT * INTO access FROM OPENDATASOURCE( ''Microsoft.Jet.OLEDB.4.0'', ''Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\data.mdb;Persist Security Info=False'')table1
或者使用OPENROWSET
SELECT * FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', ''c:\data.mdb'';''admin'';'''',''SELECT * FROM table1'')
导出数据
INSERT INTO OPENDATASOURCE( ''Microsoft.Jet.OLEDB.4.0'', ''Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\data.mdb;Persist Security Info=False'')table1 SELECT * FROM access
打开access数据库的OLE DB Provider叫Microsoft.Jet.OLEDB.4.0,需要注意的是操作非SQL Server数据库在OPENDATASOURCE()后面引用数据库中的表时使用"”,而不是“.”。
(3). SQL Server数据库和文本文件之间的数据导入导出。
导入数据
SELECT * INTO text1 FROM OPENDATASOURCE(''MICROSOFT.JET.OLEDB.4.0'',''Text;DATABASE=c:\'')[data#txt]
导出数据
INSERT INTO OPENDATASOURCE(''MICROSOFT.JET.OLEDB.4.0'',''Text;DATABASE=c:\'')[data#txt] SELECT * FROM text1
或者使用OPENROWSET
INSERT INTO OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Text;DATABASE=c:\'', [data#txt]) SELECT * FROM text1
如果要插入部分字段,可使用
INSERT INTO OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Text;DATABASE=c:\'', ''SELECT aa FROM [data#txt]'') SELECT aa FROM text1
这条SQL语句的功能是将c盘根目录的data.txt文件导入到text1表中,在这里文件名中的“.”要使用“#”代替。在向文本导出时,不仅文本文件要存在,而且第一行必须和要