本地 环境:
DB:SQL Server 2008
OS: Win7
远程环境:
DB:SQL Server
OS:Windows Server 2008
一 . 本地已经创建好了远程连接
这个比较简单,只要在Procedure中添加登录就可以了。下面以从远程调用数据插入到本地数据库中
create procedure Test_Procedure
as
begin
declare @Server varchar(100)
declare @User varchar(100)
declare @Ps varchar(100)
set @Server='RPC_Server'---远程的服务器
set @User ='RPC_User' ---用户名
set @Ps ='RPC_Ps'---密码
exec sp_addlinkedsrvlogin @Server, 'false ',null, @User,@Ps
insert into [LocalDB].dbo.Table_Name(paramenter1,paramenter2,······)
select p1,p2,·····
from RPC_Server.RPC_DB.RPC_Table ----远程的数据库名,表名
--- 具体可以看连接帮助 查看“sp_addlinkedsrvlogin ”
end
二. 本地没有创建远程连接
create procedure Test_Procedure
as
begin
-- 首先创建 连接
exec sp_addlinkedsrvlogin @rmtsrvname=N'CNBJ1SCALA01',
@useself=N'False',-----
@locallogin=N'TM1',-----本地服务器用户名
@rmtuser=N'report',-----远程用户名
@rmtpassword='########' -----远程密码
-- 其次登录连接
declare @Server varchar(100)
declare @User varchar(100)
declare @Ps varchar(100)
set @Server='RPC_Server'---远程的服务器
set @User ='RPC_User' ---用户名
set @Ps ='RPC_Ps'---密码
exec sp_addlinkedsrvlogin @Server, 'false ',null, @User,@Ps
insert into [LocalDB].dbo.Table_Name(paramenter1,paramenter2,······)
select p1,p2,·····
from RPC_Server.RPC_DB.RPC_Table ----远程的数据库名,表名
-- 最后删除连接(如果有必要的话)
exec sp_dropserver @Server, 'droplogins' -----删除此次创建的连接
end
具体参数可以查看 连机帮助的
sp_addlinkedsrvlogin 。