如果表或视图存在于本地服务器之外的一台链接的服务器上,应按以下格式使用由四部分组成的名称:linked_server.catalog.schema.object。

解决方案 »

  1.   

    sp_addlinkedserver [ @server = ] 'server'
    然后在引用另一张表的时候用完整结构,比如
    select aa,bb,cc,dd....  from EBS a,SERVER.SX1011.dbo.CUST b
    where .........
      

  2.   

    SELECT   *
    FROM      OPENDATASOURCE(
             'SQLOLEDB',
             'Data Source=机器名;User ID=用户;Password=密码'
             ).Northwind.dbo.Categories
      

  3.   

    SELECT a.*
    FROM OPENROWSET('SQLOLEDB','seattle1';'sa';'MyPass',
       'SELECT * FROM pubs.dbo.authors ORDER BY au_lname, au_fname') AS a
    使用Openrowset函数,然后再和本地的表格连接就可以了
      

  4.   

    建立链接服务器,或者直接使用openrowset语句
      

  5.   

    SELECT   *
    FROM   OPENDATASOURCE(
             'SQLOLEDB',
             'Data Source=机器名;User ID=用户;Password=密码'
             ).Northwind.dbo.Categories a join 表 b where a.id=b.id
      

  6.   

    使用OPENDATASOURCE可以,但是用链接服务器应该怎么做呢?等待中。
      

  7.   

    使用连接服务器实现。
    exec sp_addlinkedserver @server = 'svrname'
    exec sp_addlinkedsrvlogin @rmtsrvname = 'svrname', @useself = 'false',@locallogin = null,@rmtuser = 'username',@rmtpassword = 'pwd'
    select * from svrname.dbname.dbo.tablename
      

  8.   

    新问题,怎样实现在远程数据库上create table?
      

  9.   

    使用链接服务器,在查询中引用:
     select * from 
       OPENQUERY(链接服务器名,  查询字符串)
     其中“查询字符串”就如同在本地查询一样编写。
      

  10.   

    或使用联结服务器:
    EXEC sp_addlinkedserver 
       '别名', 
       '', 
       'MSDASQL',
       NULL,
       NULL,
       'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
    GO
    然后你就可以如下:
    select * from 别名.库名.dbo.表名
    insert 库名.dbo.表名 select * from 别名..库名.dbo.表名
    select * into 库名.dbo.新表名 from 别名..库名.dbo.表名
    go
      

  11.   

    使用SQL Server2000提供的链接服务器功能就可以解决问题