有两个Sqlserver 2000: A,B
如果A中的某个数据库一个表要访问B服务器中的一个库的某张表,怎么办?

解决方案 »

  1.   

    sp_addlinkedserver
    创建一个链接的服务器,使其允许对分布式的、针对 OLE DB 数据源的异类查询进行访问。在使用 sp_addlinkedserver 创建链接的服务器之后,此服务器就可以执行分布式查询。如果链接服务器定义为 Microsoft® SQL Server™,则可执行远程存储过程。
      

  2.   

    在企业管理器->数据库服务器->安全性->连接服务器->新建连接服务器,输入验证方式
    然后通过:select * from linkservername.databasename.dbo.tablename
    --dbo可以换为其他登陆连接服务器的用户名
      

  3.   


    --访问不同电脑上的数据库(远程只要联好网就一样)--如果经常访问或数据量大,建议用链接服务器--创建链接服务器
    exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
    exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
    go--查询示例
    select * from srv_lnk.数据库名.dbo.表名--导入示例
    select * into 表 from srv_lnk.数据库名.dbo.表名go
    --以后不再使用时删除链接服务器
    exec sp_dropserver 'srv_lnk','droplogins'
      

  4.   

    --如果只是临时访问,可以直接用openrowset
    --查询示例
    select * from openrowset('SQLOLEDB'
    ,'sql服务器名';'用户名';'密码'
    ,数据库名.dbo.表名)
    --导入示例
    select * into 表 from openrowset('SQLOLEDB'
    ,'sql服务器名';'用户名';'密码'
    ,数据库名.dbo.表名)
      

  5.   

    谢谢zjcxc(邹建)的回答,不但有方法,更有性能的比较。