1。SQLServer数据库之间的导入和导出数据
(1)。使用select导出数据
SQL Server是最广泛使用的报表数据来源于选择,SELECT INTO语句也有两个功能:根据选择进入后面的脚跟字段来创建一个空表(如果选择是*,空表的结构和涉及到的表具有相同的结构);插入选择发现数据空表。当使用SELECT INTO语句,变成跟表必须在数据库中不存在,否则是错误的,与下面的示例是使用SELECT INTO。



假设有一个表表1场F1(int)和F2(varchar(50))。

选择从表到表

建筑的表表后,这个SQL语句插入到表表的所有数据,也可以改变F1到F1或F2,从而将数据插入到适当的领域。

选择不仅可以在同一数据中构建表,还可以在不同的SQL Server数据库中创建表。

使用db1

SELECT *为db2.dbo.table2从表1

上述声明建立了一个表的表在数据库DB2,房主是dbo。当建表到DB2,谁是当前登录的用户必须有权限在db2建表建表,使用选择注意选择可以使用计算,因为计算返回一个记录集的设置,这将导致混乱(即不知道根据表创建一个空表)。

(2)。使用插入和更新来插入和更新数据
选择只能将数据复制到空表中,插入可以将数据从一个表或视图插入另一个表中。

插入表的SELECT * FROM表

或插入db2.dbo.table1 SELECT * FROM表

但是,上面的INSERT语句可能产生主键冲突错误。如果在表字段是主键,它发生的领域在表的值作为表值相同,因此,上述声明的可改为

插入表--假设场F1是首要关键

SELECT * FROM表不存在(选择table1.f1从表1,表1。F1 =表。F1)

上述语句的功能是插入一条记录,F1中不存在的表的表的表。

如果您要更新的表,你可以使用UPDATE语句

表1表1更新设置。F1 = table2.f1,表1。F2 = table2.f2从表2,表1。F1 = table2.f1

以上两插入和更新的句子连在一起,我们可以实现记录中不存在的表中插入,存在更新的功能,但应注意把前面的更新为插入,否则更新将更新的记录数是表1和表记录的总和。

2。不同类型使用OPENROWSET OPENDATASOURCE和数据库之间数据的导入和导出
对于异构数据库之间的数据传输,两系统功能、OPENDATASOURCE和OPENROWSET由SQL Server提供的,可以使用。

OPENDATASOURCE可以打开任何数据库支持OLE DB和OPENDATASOURCE可以作为选择、更新、插入和删除在桌子期间的名字

SELECT * FROM OPENDATASOURCE('sqloledb ','datasource = 192.168.1.113;用户ID = SA;密码= 123456)。pubs.dbo.authors

SELECT * FROM OPENDATASOURCE(SQLOLEDB,数据源= 192.168.18.252;用户ID = SA;密码=测试)。pubs.dbo.authors

这句话的功能是在SQL Server数据库中的192.168.18.252机作者表查询,你可以看到这句话,OPENDATASOURCE有两个参数。第一个参数是provider_name,代表用于访问数据源的OLE DB提供者的ProgID名称,provider_name数据类型char和没有默认值。二参数是字符串的连接,根据OLE DB提供者不同(如果你不知道的连接字符串,他们使用的OLE DB提供程序,可以使用Visual Studio的Delphi的ADO控件中自动生成连接字符串对应的开发工具)。

OPENROWSET函数类似于OPENDATASOURCE函数,但它可以查询数据库中的表在打开数据库,如下面的语句

OPENROWSET(MSDASQL。1,司机=微软Visual FoxPro程序;sourcedb = C:分贝;sourcetype = DBF,SELECT * FROM { b.dbf })

最后一个参数查询b.dbf FoxPro表,和读者可以通过那里的条件b.dbf过滤器。如果你使用插入,选择插入或OPENROWSET和OPENDATASOURCE一起,可以导入SQL Server数据库和其他类型的数据库之间的数据导出。下面介绍如何使用这些函数的进出口数据的数据库的SQL Server数据库和其他类型之间的。

(1)the.sql服务器数据库和SQL Server数据库之间数据的导入和导出。
进口数据

SELECT * intoauthors1从OPENDATASOURCE(SQLOLEDB,数据源= 192.168.18.252;用户ID = SA;密码为abc)。pubs.dbo.authors

出口数据

插入OPENDATASOURCE(SQLOLEDB,数据源= 192.168.18.252;用户ID = SA;密码为abc)。test.dbo.authors SELECT * FROM顾问

在这句话中,OPENDATASOURCE(…)可以理解为一个SQL Server服务,and.pubs.dbo.authors是表作者一个服务管理数据库。OPENDATASOURCE(…)的踵必须存在,当插入使用。

你也可以改变上述OPENDATASOURCE为OPENROWSET

插入OPENROWSET(SQLOLEDB,192.168.18.252;SA;ABC,选择*从试验。dbo。KK)SELECT * FROM

使用OPENROWSET注意一点,192.168.18.252;SA;ABC在中东是;两OPENDATASOURCE和openrowset不接受参数变量。

(2)。SQLServer数据库和access数据库之间的数据导入和导出。
进口数据

SELECT *为访问OPENDATASOURCE(微软。飞机。OLEDB。4、商=微软。飞机。OLEDB数据源= 4;C: data.mdb;坚持安全信息= false)......

或使用OPENROWSET

SELECT * FROM OPENROWSET(微软。飞机。OLEDB。4、C: data.mdb;管理;选择*从表1)

出口数据

插入OPENDATASOURCE(微软。飞机。OLEDB。4、商=微软。飞机。OLEDB数据源。4 = C: data.mdb,坚持安全信息= false)…表1,* *

OLE DB提供程序打开的Access数据库为微软。飞机。OLEDB。4。我们应该注意非SQL Server数据库的操作。当我们将数据库中的表后OPENDATASOURCE(…),我们用…而不是。

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

SELECT *为text1从OPENDATASOURCE(微软。飞机。OLEDB。4、文本;数据库= C:)…{资料} # txt

出口数据

插入OPENDATASOURCE(微软。飞机。OLEDB。4、文本;数据库= C:)…{资料}选择*从# txt

或使用OPENROWSET

插入OPENROWSET(微软。飞机。OLEDB。4、文本;数据库= C:,{数据# txt })选择*从text1

如果您想插入字段的一部分,您可以使用它

插入OPENROWSET(微软。飞机。OLEDB。4、文本;数据库= C:,选择AA从{数据# txt })选择AA

这个SQL语句是data.txt文件C盘根目录下的表的功能介绍,这里是用#代替文件名。出口到文本的时候,不仅文本文件存在,但第一行必须和现场一个导出表。

(4)。SQL Server数据库和dBASE数据库之间的数据导入导出。
进口数据

SELECT *为dBASE从OPENROWSET(微软。飞机。OLEDB。4、dBASE III;HDR =没有;IMEX = 2;数据库= C:,选择*)

出口数据


插入OPENROWSET(微软。飞机。OLEDB。4、dBASE III;HDR =没有;IMEX = 2;数据库= C:,SELECT * FROM { b.dbf })

在openrowset的b.dbf(…)结合{…}犯错误当DBF文件的名字空间和其他字符。如果没有这些特殊字符,我们可以删除{ }。

(5)。SQL Server数据库与FoxPro数据库的数据导入与导出。
进口数据

SELECT * FoxPro从OPENROWSET(MSDASQL。1,司机=微软Visual FoxPro程序;sourcedb = C:;sourcetype = DBF。

出口数据

插入OPENROWSET(MSDASQL。1,司机=微软Visual FoxPro程序;sourcedb = C:分贝;sourcetype = DBF,SELECT *视觉)。

这里a.dbf不能使用{…}覆盖或犯错误(这是由驱动程序)。

(6)。SQL Server数据库和Excel文件之间的数据导入和导出
进口数据

选择导入Excel从OPENDATASOURCE(微软。飞机。OLEDB。4、Excel 5;数据库= C: 1 .xls)…{ Sheet1 $ }

出口数据

插入OPENDATASOURCE(微软。飞机。OLEDB。4、Excel 5;数据库= C: 1 .xls)…{美元}选择*从Excel中

在book1.xls Sheet1,必须有一个对应的Excel表的字段,否则会出现错误。

讨论了如何在多个公共数据库和SQL Server数据库之间使用Transact-SQL进行数据导入和导出,在SQL Server中,还提供了将其他类型的数据库注册到SQL Server中的功能,以便在使用SQL Server数据库表时将这些表用于已注册的数据库中。

执行sp_addlinkedserver访问OLE DB提供飞机,微软。飞机。OLEDB。4、C: data.mdb

上面的SQL注册一个Access数据库使用存储过程sp_addlinkedserver。我们可以使用下面的SQL Server语句查询表1 data.mdb。

从访问中选择*…表1

这使得它在访问数据库表的查询非常方便,如果你要导入的表,你可以使用SELECT *为表访问…表1。如果你想删除注册数据库连接,使用以下语句。

执行sp_dropserver访问

使用Transact-SQL不仅可以将导出的数据导入SQLServer数据库,还可以使任何两种类型的数据库互相导入数据。

插入OPENDATASOURCE(微软。飞机。OLEDB。4、Excel 5;数据库= C: 1 .xls)…{ } Sheet1美元SELECT * FROM OPENROWSET(微软。飞机。OLEDB。4,OPENROWSET;*;,***)。

上面的sql语句插入access数据库的表表数据到Excel文件中book1.xls Sheet1的形式。