现在的位置: 首页 > 综合 > 正文

Procedure(存储过程)调用远程服务器上的数据

2013年03月03日 ⁄ 综合 ⁄ 共 1346字 ⁄ 字号 评论关闭

 

   本地 环境:

   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

 

更多内容参考

 

 

抱歉!评论已关闭.