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

解决方案 »

  1.   

    link1,2,3这个标记就是这个吗?
    会不会有其它复杂的,比如 jadfsdf-3232
    加个[]试试
    Select nameID From [link3].DB.dbo.NAMES
      

  2.   

    我说下我的架构吧~查询机器创建的就是几台机器的link。现在就是要当有link1的时候
    INSERT INTO #tmp
    Select nameID From link1.DB.dbo.NAMES With (Nolock)
    有link2的时候再执行
    INSERT INTO #tmp
    Select nameID From link2.DB.dbo.NAMES With (Nolock)
    没有link2的时候直接跳过 然后再去看link3.。
      

  3.   

    select sys.servers是查看本实例的连接吧。就算有link1,link2...应该都是连接的本实例的
    所以所有的都是先同一个数据库的表的数据查入这个实例的临时表吧。
      

  4.   

    以前写的查询都是有几个link 我分别写几种类型的语句,比如
    这个这个查询机器有link1和link5 我就是这样写的
    CREATE TABLE #tmp (
      nameID bigint NOT NULL PRIMARY KEY
    )
    GOinsert into #tmpGiftRecievers
    INSERT INTO #tmp
    Select nameID From link1.DB.dbo.NAMES With (Nolock)
    Union All
    INSERT INTO #tmp
    Select nameID From link5.DB.dbo.NAMES With (Nolock)如果有些机器有4个link,语句就要再加两条。很不方便。。我现在就是想让他直接判断,当有link1时候执行link1的,没有的时候就跳过
      

  5.   

    楼上的那句--insert into #tmpGiftRecievers  无视掉
      

  6.   

    其中link1,link2,link3.....link6都是我link到别的机器的