我从A电脑上利用数据库备份,把数据库搬到了B台电脑上  
还原备份后在B电脑有了新的数据库,包括了所有的表和存储过程等  
之后在B本地数据库内执行存储过程  
提示服务器:  消息  7202,级别  11,状态  2,行  1  
在  sysservers  中未能找到服务器  'A'。请执行  sp_addlinkedserver  以将服务器添加到  sysservers。  
这是什么原因呢?A、B两台电脑不联网。  
请指教,谢谢

解决方案 »

  1.   

    估計是你的存儲過程阿,或者函數,trigger 什麼之類的裡面用到了
    .'A'作為裡面的代碼
      

  2.   

    那我就搞不懂了,看那个提示应该就是程序里面有些地方写死了。你是直接后台运行那个SP出错还是运行程序的时候报错呀?看清楚程序代码和SP代码有没有什么地方是写死的咯。这种报服务器没找到的我没遇到过,报数据库没找到的倒是有,就是因为恢复的时候用了别的库名而程序里面又写死了旧库名。
      

  3.   

    我直接运行SP,就提示错误了
    新的数据库跟原来的数据库命名完全一样,SP代码看不出哪有写指定A服务器了
    这个存储过程主要是在一张表里通过一个列名的值找到另一个列名的值
    所有的表都复制过来了
    如果不用这个存储过程,直接select也是可以执行,结果也没问题。
    不过调用这个存储过程就不行了,我希望能知道原因。
      

  4.   

    你就把“exec Procedurexxx @parameter1, @parameter2”以及SP里面的Create Procedure一直到AS这几句帖来看看?
      

  5.   

    declare @oid int
    exec spgetxbya 'abcdf' ,@oid output
     CREATE PROCEDURE spGetxBya
    (  
     @name   nvarchar(24),  
     @oid   int output,  
     @isLocal  tinyint = 0  
    )  
    AS
      

  6.   

    sorry, 没看出问题,等高手解答
      

  7.   

    这个存储过程在A服务器内,正常调用
    也不需要连接其他服务器可能在移动数据库时是不是还有其他的设置需要改动?我只是移动了数据库,设置一点都没变动过
    非常谢谢wgqqgw(小强) 回复了我那么多^^
      

  8.   

    客气啥,我对工作有点厌倦,上网看看轻松一下而已啦。刚刚突然想到一个方法,备份一下,然后把这个SP drop掉重建一次,看看会发生什么事情。
      

  9.   

    复制下来,drop后再create一下
    还是无效=。=
      

  10.   

    给出存储过程里面的代码。
    看里面有没有调用其他的Function、SP等,一直找下去,估计是某一个里面写死了A。
      

  11.   

    exec sp_dropserver 'a'
    exec sp_addserver serverproperty('servername'),'local'
    ------------------------------------------------------
    运行之前先看看相关的语法!!!