数据库

数据库之间进行数据导入导出

2011-05-05

 (1)SQL Server数据库和SQL Server数据库之间的数据导入导出。

  导入数据

 

  1. SELECT * INTO authors1  
  2. FROM OPENDATASOURCE(  
  3. SQLOLEDB ,  
  4. Data Source=192.168.18.252;User ID=sa;Password=abc  
  5. ).pubs.dbo.authors

 

  导出数据

 

  1. INSERT INTO OPENDATASOURCE(  
  2. SQLOLEDB ,  
  3. Data Source=192.168.18.252;User ID=sa;Password=abc  
  4. ).test.dbo.authors select * from pubs.dbo.authors  
  5.  

 

  在这条语句中OPENDATASOURCE(...)可以理解为SQL Server的一个服务,.pubs.dbo.authors是这个服务管理的一个数据库的一个表authors。使用INSERT INTO时OPENDATASOURCE(...)后跟的表必须存在。

  也可以将以上的OPENDATASOURCE换成OPENROWSET

 

  1. INSERT INTO OPENROWSET( SQLOLEDB , 192.168.18.252 ; sa ; abc select * from test.dbo.kk )  
  2. SELECT * FROM pubs.dbo.authors

 

  使用OPENROWSET要注意一点, 192.168.18.252 ; sa ; abc 中间是";",而不是","。OPENDATASOURCE和OPENROWSET都不接受参数变量。

  (2)SQL Server数据库和Access数据库之间的数据导入导出。

  导入数据

 

  1. SELECT * INTO access  
  2. FROM OPENDATASOURCE(  
  3. Microsoft.Jet.OLEDB.4.0 ,  
  4. Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:"data.mdb;Persist Security Info=False )table1  
  5. 或者使用OPENROWSET  
  6.  
  7. SELECT * FROM OPENROWSET( Microsoft.Jet.OLEDB.4.0 c:"data.mdb ; admin ; , SELECT * FROM table1 )  
  8.  

 

  导出数据

 

  1. INSERT INTO OPENDATASOURCE(  
  2. Microsoft.Jet.OLEDB.4.0 ,  
  3. Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:"data.mdb;Persist Security Info=False )table1  
  4. SELECT * FROM access

 

  打开access数据库的OLE DB Provider叫Microsoft.Jet.OLEDB.4.0,需要注意的是操作非SQL Server数据库在OPENDATASOURCE(...)后面引用数据库中的表时使用"...”,而不是“.”。

  (3)SQL Server数据库和文本文件之间的数据导入导出。

  导入数据

 

  1. SELECT * INTO text1 FROM 
  2. OPENDATASOURCE( MICROSOFT.JET.OLEDB.4.0 , Text;DATABASE=c:" )[data#txt]