现有 
  服务器S1数据库DB1
  服务器S2数据库DB2
我在S2里面建立了一个与S1的链接 通过以下语句EXEC sp_addlinkedserver 'S1con', '', 'MSDASQL', NULL, NULL, 'DRIVER={SQL Server};SERVER=192.168.1.105;UID=sa;PWD=;'
DB1里有个存储过程SP1CREATE PROCEDURE [dbo].[sp1] (
@p1 varchar(20),
@P2 int
)
AS
DECLARE @R1 NUMERIC(18,2)
select @R1=sum(JE) from dj where Dh=@P1 and Xh=@P2select isnull(@R1,0) AS 总金额
GODB2里有个存储过程Sp2CREATE PROCEDURE [dbo].[Sp2] (
@p1 varchar(20),
@p2 int
)AS
exec db1con.db1.dbo.getje @p1,@p2
GO
现在的问题是从DB2里执行SP2的时候报错:
服务器: 消息 7411,级别 16,状态 1,行 1
服务器 'DB1CON' 没有为 RPC 的目的而配置。我的目的是通过执行DB2里面的SP2可以获取DB1里面SP1的结果
因为DB2下面有很多客户端,客户端不和DB1链接单需要DB1里面的数据
我这种方法是不是不行?有没有其他或更好的方法?
谢谢!
没分了以后尽量赚取积分

解决方案 »

  1.   

    MSDTC设置是否正确.
    1.打开命令提示,运行"net stop msdtc",然后运行"net start msdtc"。
    2.转至"组件服务管理工具"。
    3.浏览至"启动管理工具"。
    4.选择"组件服务"。
     a.展开"组件服务"树,然后展开"我的电脑"。
     b.右键单击"我的电脑",然后选择"属性"。
     C.在 MSDTC 选项卡中,确保选中了下列选项: 网络 DTC 访问
    网络管理
    网络事务
        XA 事务
     e.另外,"DTC 登录帐户"一定要设置为"NT Authority\NetworkService"。
    5.单击"确定"。这样将会提示您"MS DTC 将会停止并重新启动。
      所有的依赖服务将被停止。请按'是'继续"。单击"是"继续。
    6.单击"确定"关闭"我的电脑"属性窗口。MSDTC依赖于RPC,RPC使用的端口是135,测试135端口是否打开.是否有防火墙?如果有先关了防火墙.
    telnet IP 135
    如果是关闭的打开它.
      

  2.   

    问题补充:
      我直接查询语句可以,例如
      select * from db1con.db1.dbo.tb1
    这个可以
      

  3.   


    對,沒有設置好MSDTC時只能查詢
      

  4.   

    白搭,都选上了,用户也没错,135也是开的
    忘记说了,我是在XP上测试的,是不是XP的问题?
    明天用服务器测试试试!
      

  5.   

    與系統無關,估計出在MSDTC的問題DTC存取兩個選擇允許交易管理同樣允許輸入出你選擇不需要驗證啟用 XA交易 ("DTC 登录帐户"一定要设置为"NT Authority\NetworkService")
      

  6.   

    双方机器都配置好了!
    我的机器和服务器机器设置的一样
    我的XP,设置了MSDTC
    服务器WIN2003 同样的设置了MSDTC
    我的数据库里MASTER库SYSSERVERS表里建了个链接,我看了看,里面有rpc字段,是0,不能修改为1,是不是这里的问题?
      

  7.   

    本帖最后由 roy_88 于 2011-05-18 17:47:12 编辑
      

  8.   

    解决方法:(1)exec   sp_serveroption   'srv_lnk','rpc out','true'     
    exec   sp_serveroption   'srv_lnk','rpc','true'  (2)   <1>SqlServer2000  在企业管理器中-->数据库-->安全-->链接数据库-->点击你需要配置的链接数据库-->属性页-->   
      "server   Options"-->勾选RPC和RPC   Out     <2>SqlServer2005   在Microsoft Sql Server Management Studio -->服务器对象-->连接服务器-->右击你需要配置的链接数据库-->选择页,服务器选项 RPC和RPC   Out 改为 “True“  
    参考地址:http://blog.csdn.net/xiage/article/details/4252022