日期:2014-05-18  浏览次数:20864 次

读取另外一台sql server 的数据
现在有两台sql   server服务器,一台在使用的(Prod),一台用来开发的(Dev).怎么用sql语句(run   at   SQL   Query   Analyzer)把Prod的数据读到Dev的表里.

------解决方案--------------------
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin 'srv_lnk ', 'false ',null, '用户名 ', '密码 '
go

--返回在本地服务器上定义的链接服务列表
exec sp_linkedservers

--查询示例
select * from srv_lnk.数据库名.dbo.表名

--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名

insert into srv_lnk.库名.dbo.表名(字段名1,字段名2,字段名3,....)
select 字段名1,字段名2,字段名3,.... from 表名

--返回指定链接服务器中的系统目录列表,在本地服务器中等价于数据库列表
--连接不上会显示:SQL Server 不存在或拒绝访问。(判断远程SQL数据库连接状态是否正常)
exec sp_catalogs srv_lnk

--以后不再使用时删除链接服务器
exec sp_dropserver 'srv_lnk ', 'droplogins '
go

--如果只是临时访问,可以直接用openrowset
--查询示例
select *
from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)

--导入示例
select * into 表
from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
------解决方案--------------------
try:
使用 sp_addserver 可将运行 SQL Server 实例的服务器定义为远程服务器。再写一个存储过程调用中引用该远程服务器。
------解决方案--------------------
伙计,建议你别这么整,性能机器低!!!!
如果你是1次性的导数据:用SQL的导入/导出功能就可以实现
如果你要把他当作你程序的一个功能块:建议你写程序实现吧
呵呵