--如果两个过程不在同一个数据库内,则只要在调用时,指明存储过程所在的数据库就可以了.--即可以直接这样调用:
exec 数据库名..存储过程名 @参数

解决方案 »

  1.   

    --如果存储过程不在同一个SQL实例下(不同服务器)
    --则要使用链接服务器--创建链接服务器
    exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
    exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
    exec sp_serveroption 'srv_lnk','rpc out','true' -这个允许调用链接服务器上的存储过程
    go--调用链接服务器上的存储过程
    exec srv_lnk.数据库名.dbo.存储过程名 @参数go
    --处理完成后删除链接服务器
    exec sp_dropserver 'srv_lnk','droplogins'
      

  2.   

    在SERVERA数据库A里的AA存储过程去调用SERVERB数据库B里的BB存储过程。其中数据库A在SQL SERVER2000 A上,数据库B在SQL SERVER2000 B上。1.在SERVERA上注册 SERVERB
    2.EXEC [SERVERB].[B].[dbo].BB