您的位置:首页 > 数据库

使用T-SQL实现数据导出/导入(SQLSERVER—>SQLSERVER)

2009-08-04 11:21 1076 查看
今天尝试使用Transact-SQL进行数据的导出导入,收获颇丰。与使用DTS相比,效率要高很多!

一、打开OPENDATASOURCE功能

开始 —>

所有程序 —>
Microsoft SQL Server 2005 —>
配置工具 —>
SQL Server外围应用配置器 —>
功能的外围应用配置器 —>
实例名 —>
Database Engine —>
即席远程查询 —>
启用OpenRowset和OpenDatasource支持。

否则,会报错:
消息 15281,级别 16,状态 1,第 1 行
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器

安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed

Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

二、打开远程连接

开始 —>
所有程序 —>
Microsoft SQL Server 2005 —>
配置工具 —>
SQL Server外围应用配置器 —>
服务和连接的外围应用配置器 —>
实例名 —>
Database Engine —>
远程连接 —>
本地连接和远程连接 —>
仅使用TCP/IP —>
应用 —>
重新启动数据库引擎

否则,会报错:
链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "登录超时已过期"。
链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置
SQL Server 不允许远程连接这个事实可能会导致失败。"。
消息 65535,级别 16,状态 1,第 0 行
SQL 网络接口: 从注册表获取已启用的协议列表时出错 [xFFFFFFFF].

三、打开客户端TCP/IP协议

开始 —>
所有程序 —>
Microsoft SQL Server 2005 —>
配置工具 —>
SQL Server Configuration Manager —>
SQL Server 2005网络配置:启用TCP/IP 协议
SQL Native Client 配置: 启用
默认端口-1433

四、创建联接服务器

exec sp_addlinkedserver @server='conndb04',
@provider='sqloledb',
@srvproduct='',
@datasrc='WINNIE/IIDC'
exec sp_addlinkedsrvlogin @rmtsrvname='WINNIE/IIDC',
@useself='false',
@locallogin='admin',
@rmtuser='admin',
@rmtpassword='password';

[注]这里的login帐户,应该是使用SQL Server身份验证的帐户,否则,会报错:xx用户无法登陆。。。

五、在导入目标数据库中创建空表
use wwww
go
create table pro_unit_sort(
CulID varchar(40),
Coll_Unit varchar(400),
cul_Sort varchar(400))

六、执行导出/导入

select * into wwww.dbo.pro_unit_sort from conndb04.wwww_xx..dbo.xx._unit_sort;

[注]

1、第四步和第六步等同于:
use wwww
go
insert INTO OPENDATASOURCE(
'SQLOLEDB',
'Data Source=WINNIE/IIDC;
User ID=admin;
Password=password'
).wwww.dbo.pro_unit_sort
select * from wwww_xx.dbo.xx.unit_sort;

2、执行此操作时,将使用到UDP 1434端口,如果防火墙关闭了此端口的话,请将其打开。否则,会报错:

链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "登录超时已过期"。
链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置
SQL Server 不允许远程连接这个事实可能会导致失败。"。
消息 65535,级别 16,状态 1,第 0 行
SQL 网络接口: 从注册表获取已启用的协议列表时出错 [xFFFFFFFF].

参考文档:

1、使用Transact-SQL进行数据导入导出方法详解:
http://tech.it168.com/db/s/2006-08-16/200608160913336_1.shtml

2、SQLServer的链接服务器技术小结
http://www.linuxmine.com/33943.html
本文出自 51CTO.COM技术博客
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐