SQLServer异构数据库之间数据的导入导出(二)

2014-11-24 08:43:47 ? 作者: ? 浏览: 3
ess数据库之间的数据导入导出。
  导入数据

  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表中,在这里文件名中的“.”要使用“#”代替。在向文本导出时,不仅文本文件要存在,而且第一行必须和要导出表的字段一至。

(4). SQL Server数据库和dbase数据库之间的数据导入导出。
  导入数据

  SELECT * INTO dbase FROM OPENROWSET(MICROSOFT.JET.OLEDB.4.0 , dBase III;HDR=NO;IMEX=2;DATABASE=C:,SELECT * FROM [b.dbf])

  导出数据

  INSERT INTO OPENROWSET(MICROSOFT.JET.OLEDB.4.0 , dBase III;HDR=NO;IMEX=2;DATABASE=C:,SELECT * FROM [b.dbf]) SELECT * FROM dbase

  OPENROWSET(...)中的b.dbf使用[...]括起来,是为了当dbf文件名有空格等字符时不会出错,如果没有这些特殊字符,可以将[...]去掉

  (5). SQL Server数据库和foxpro数据库之间的数据导入导出。
  导入数据

  SELECT * INTO foxpro FROM OPENROWSET(MSDASQL.1, Driver=Microsoft Visual FoxPro Driver;SourceDB=c:; SourceType=DBF, SELECT * FROM [a.dbf])

  导出数据

  INSERT INTO OPENROWSET(MSDASQL.1 , Driver=Microsoft Visual FoxPro Driver; SourceDB=c:db;SourceType=DBF,SELECT * FROM a.dbf) SELECT * FROM foxpro

  在此处a.dbf不能使用[...]括起来,否则出错(这是由driver决定的)。

  (6). SQL Server数据库和excel文件之间的数据导入导出
  导入数据

  SELECT * INTO excel FROM OPENDATASOURCE(MICROSOFT.JET.OLEDB.4.0,Excel 5.0;DATABASE=c:ook1.xls )...[Sheet1$]

  导出数据

  INSERT INTO OPENDATASOURCE(MICROSOFT.JET.OLEDB.4.0,Excel 5.0;DATABASE=c:ook1.xls )...[Sheet1$] SELECT * FROM excel

  在book1.xls的Sheet1中必须有和excel表相对应的字段,否则会出错。

  以上讨论了几种常用的数据库和SQL Server数据库之间如何使用Transact-SQL进行数据导入导出。在SQL Server中还提供了将其它类型的数据库注册到SQL Server中的功能,这