本帖最后由 jy03013403 于 2011-04-23 13:45:19 编辑

解决方案 »

  1.   

    呵呵,没看出问题。自己查看一下:
    EXEC sys.sp_linkedservers
      

  2.   

    楼上的,没明白我的意思。。我的意思是我想写6个link的字句。但是实际上计算机只创建了3个link.我想需要它自己判断,当有link1的时候再跑
    INSERT INTO #tmp
    Select nameID From link1.DB.dbo.NAMES With (Nolock)
    如果没有就查link2.
    link2还没有就查link3.
    但是实际情况是,如果我没有link2他会给我报错找不到link2.
    Could not find server 'link2' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.
      

  3.   

     IF EXISTS (Select * From master..sysservers WITH(NOLOCK) Where srvName = 'link1')
       INSERT INTO #tmp Select nameID From link1.DB.dbo.NAMES With (Nolock)
     ...
      

  4.   

    报错、。。没有link2的时候 还是提示Could not find server 'link2' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.
      

  5.   

    IF EXISTS (Select * From master..sysservers WITH(NOLOCK) Where srvName = 'link1')
       INSERT INTO #tmp Select nameID From link1.DB.dbo.NAMES With (Nolock)
    IF EXISTS (Select * From master..sysservers WITH(NOLOCK) Where srvName = 'link2')
       INSERT INTO #tmp Select nameID From link2.DB.dbo.NAMES With (Nolock)
    IF EXISTS (Select * From master..sysservers WITH(NOLOCK) Where srvName = 'link3')
       INSERT INTO #tmp Select nameID From link3.DB.dbo.NAMES With (Nolock)
     ...
     依次改一下,
      

  6.   

    还是感谢楼上。但是楼上的这个和我写的这个
    IF EXISTS (Select * From sys.servers WITH(NOLOCK) Where Name = 'link1')
    INSERT INTO #tmp
    Select nameID From link1.DB.dbo.NAMES With (Nolock)IF EXISTS (Select * From sys.servers WITH(NOLOCK) Where Name = 'link2')
    INSERT INTO #tmp
    Select nameID From link2.DB.dbo.NAMES With (Nolock)IF EXISTS (Select * From sys.servers WITH(NOLOCK) Where Name = 'link3')
    INSERT INTO #tmp
    Select nameID From link3.DB.dbo.NAMES With (Nolock)
    是一样的吧~~~
    在执行的时候如果没有创建link2的链接,回报INSERT INTO #tmp Select nameID From link2.DB.dbo.NAMES With (Nolock)这句无法执行的