现正在做分布式查询,
想要知道链接的server是本地的还是远程的,
用 sp_linkedservers 可以查询出 已经链接的server
但是怎么将查询结果放到一个表中,用来做处理呢?

解决方案 »

  1.   


    在sp_linkedservers 查询结果中,有两个字段srv_name,srv_datasource分别记录了服务器名和服务器数据来源,
    我的思路是srv_name = srv_datasource 则是本地服务器,不是则是远程服务器。
    这个思路是正确的吧?现在的困惑就是怎么把查询出来的结果存放到一个临时表中进行处理。
    请不吝赐教,多谢。
      

  2.   

    --try
    insert into #T exec sp_linkedservers
      

  3.   

    create table #server(srv_name varchar(200),
    srv_providername varchar(200),
    srv_product varchar(200),
    srv_datasource varchar(200),
    srv_providerstring varchar(200),
    srv_cat varchar(200)
    )
    insert into #server (srv_name ,
    srv_providername ,
    srv_product ,
    srv_datasource ,
    srv_providerstring ,
    srv_cat 
    )
    exec master.dbo.sp_linkedserversselect * from #serverdrop table #server
    这样做报错:服务器: 消息 213,级别 16,状态 7,过程 sp_linkedservers,行 2
    插入错误: 列名或所提供值的数目与表定义不匹配。
    很困惑
      

  4.   


    select
    SRV_NAME = srvname,
    SRV_PROVIDERNAME = providername,
    SRV_PRODUCT = srvproduct,
    SRV_DATASOURCE = datasource,
    SRV_PROVIDERSTRING = providerstring,
    SRV_LOCATION = location,
    SRV_CAT = catalog
            into tableA
    from master.dbo.sysservers
      

  5.   


        select
            SRV_NAME = srvname,
            SRV_PROVIDERNAME = providername,
            SRV_PRODUCT = srvproduct,
            SRV_DATASOURCE = datasource,
            SRV_PROVIDERSTRING = providerstring,
            SRV_LOCATION = location,
            SRV_CAT = catalog
        into tableA
        from master.dbo.sysservers    select * from tableA