22,210
社区成员
发帖
与我相关
我的任务
分享
/*
环境 :
本地(xp+sql2005):
select @@version
icrosoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
Oct 14 2005 00:33:37
Copyright (c) 1988-2005 Microsoft Corporation
Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
data服务器(win2000+sql2000):
select @@version
Microsoft SQL Server 2000 - 8.00.2039 (Intel X86)
May 3 2005 23:18:38
Copyright (c) 1988-2003 Microsoft Corporation
Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
*/
-- 1 创建链接服务器
exec sp_addlinkedserver 'data', '', 'SQLOLEDB','192.168.102.208'
exec sp_addlinkedsrvlogin 'data','false ',null, 'sa', 'sa'
go
-- 2 创建测试过程
if object_id('p_test') is not null drop proc p_test
go
create proc p_test @sql varchar(8000)
as
begin
exec(@sql)
end
-- 3 测试
declare @sql varchar(8000)
set @sql ='
delete from data.master.dbo.tb
insert data.master.dbo.tb (item) values(''AAAAAAAAAA'')
select * from data.master.dbo.tb'
exec p_test @sql
/*
(1 行受影响)
(1 行受影响)
Item FDate Type quantity unit
---------------------------------------------------------------------------------------------------- ----------------------- ---------------------------------------------------------------------------------------------------- ----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AAAAAAAAAA NULL NULL NULL NULL
(1 行受影响)
*/
-- 4 删除链接
exec sp_dropserver 'data ', 'droplogins'
--访问不同电脑上的数据库(远程只要联好网就一样)
--如果经常访问或数据量大,建议用链接服务器
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin 'srv_lnk ', 'false ',null, '用户名 ', '密码 '
go
--查询示例
select * from srv_lnk.数据库名.dbo.表名
--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名
go
--处理完成后删除链接服务器
exec sp_dropserver 'srv_lnk ', 'droplogins '