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

本文详细介绍如何通过Transact-SQL实现SQL Server的数据迁移过程,包括开启OPENDATASOURCE功能、远程连接配置、创建链接服务器及执行数据导出导入的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

尝试使用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   —>
应用  —>
 重新启动数据库引擎
SQL Server 不允许远程连接这个事实可能会导致失败。"。 消息 65535,级别 16,状态 1,第 0 行 SQL 网络接口: 从注册表获取已启用的协议列表时出错 [xFFFFFFFF].
否则,会报错: 链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "登录超时已过期"。 链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置
 
三、打开客户端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].
所有程序  —>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值