select b.ID,a.姓名 from HHMMCC a INNER JOIN wwdd.dbo.HMC b on (b.ID = a.ID)
WD 和 WWDD 是两个 SQL 服务器中的数据库,服务器 A 中有一个 WD 数据库,其中有一个表 HHMMCC ,服务器 B 中有一个 WWDD 数据库,其中有一个表 HMC
想将 HHMMCC 表和 HMC 表中 ID 字段相同的数据提取出来假设连接在服务器 A 中的 WD 数据库,select 语句该如何写?

解决方案 »

  1.   

    select b.ID,a.姓名 from HHMMCC a INNER JOIN 服务器名b.wwdd.dbo.HMC b on (b.ID = a.ID)
      

  2.   


    必须使用sp_addlinkedserver添加一个连服务器B的连接     EXEC sp_addlinkedserver     '服务器B',    N'SQL Server'
    才可以执行
    select * from 服务器B.数据库.dbo.表名
      

  3.   

    sp_addlinkedserver
    创建一个链接的服务器,使其允许对分布式的、针对 OLE DB 数据源的异类查询进行访问。在使用 sp_addlinkedserver 创建链接的服务器之后,此服务器就可以执行分布式查询。如果链接服务器定义为 Microsoft® SQL Server™,则可执行远程存储过程。语法
    sp_addlinkedserver [ @server = ] 'server'
        [ , [ @srvproduct = ] 'product_name' ]
        [ , [ @provider = ] 'provider_name' ]
        [ , [ @datasrc = ] 'data_source' ]
        [ , [ @location = ] 'location' ]
        [ , [ @provstr = ] 'provider_string' ]
        [ , [ @catalog = ] 'catalog' ]参数
    [ @server = ] 'server'要创建的链接服务器的本地名称,server 的数据类型为 sysname,没有默认设置。如果有多个 SQL Server 实例,server 可以为 servername\instancename。此链接的服务器可能会被引用为下面示例的数据源:SELECT *FROM    [servername\instancename.]pubs.dbo.authors. 如果未指定 data_source,则服务器为该实例的实际名称。[ @srvproduct = ] 'product_name'要添加为链接服务器的 OLE DB 数据源的产品名称。product_name 的数据类型为 nvarchar(128),默认设置为 NULL。如果是 SQL Server,则不需要指定 provider_name、data_source、location、provider_string 以及目录。[ @provider = ] 'provider_name'与此数据源相对应的 OLE DB 提供程序的唯一程序标识符 (PROGID)。provider_name 对于安装在当前计算机上指定的 OLE DB 提供程序必须是唯一的。provider_name 的数据类型为nvarchar(128),默认设置为 NULL。OLE DB 提供程序应该用给定的 PROGID 在注册表中注册。[ @datasrc = ] 'data_source'由 OLE DB 提供程序解释的数据源名称。data_source 的数据类型为 nvarchar(4000),默认设置为 NULL。data_source 被当作 DBPROP_INIT_DATASOURCE 属性传递以便初始化 OLE DB 提供程序。 当链接的服务器针对于 SQL Server OLE DB 提供程序创建时,可以按照 servername\instancename 的形式指定 data_source,它可以用来连接到运行于特定计算机上的 SQL Server 的特定实例上。servername 是运行 SQL Server 的计算机名称,instancename 是用户将被连接到的特定 SQL Server 实例的名称。[ @location = ] 'location'OLE DB 提供程序所解释的数据库的位置。location 的数据类型为 nvarchar(4000),默认设置为 NULL。location 作为 DBPROP_INIT_LOCATION 属性传递以便初始化 OLE DB 提供程序。[ @provstr = ] 'provider_string'OLE DB 提供程序特定的连接字符串,它可标识唯一的数据源。provider_string 的数据类型为 nvarchar(4000),默认设置为 NULL。Provstr 作为 DBPROP_INIT_PROVIDERSTRING 属性传递以便初始化 OLE DB 提供程序。当针对 Server OLE DB 提供程序提供了链接服务器后,可将 SERVER 关键字用作 SERVER=servername\instancename 来指定实例,以指定特定的 SQL Server 实例。servername 是 SQL Server 在其上运行的计算机名称,instancename 是用户连接到的特定的 SQL Server 实例名称。[ @catalog = ] 'catalog'建立 OLE DB 提供程序的连接时所使用的目录。catalog 的数据类型为sysname,默认设置为 NULL。catalog 作为 DBPROP_INIT_CATALOG 属性传递以便初始化 OLE DB 提供程序。
      

  4.   

    在vb中如何用sp_addlinkedserver添加一个连服务器B的连接呢?EXEC sp_addlinkedserver     '服务器B',    N'SQL Server'
      

  5.   

    使用用于 SQL Server 的 OLE DB 创建链接服务器 
    下面的示例创建一台名为 SEATTLESales 的链接服务器,该服务器使用用于 SQL Server 的 Microsoft OLE DB 提供程序。USE master
    GO
    EXEC sp_addlinkedserver 
        'SEATTLESales',
        N'SQL Server'
    GO在 SQL Server 的实例上创建链接服务器 
    此示例在 SQL Server 的实例上创建一台名为 S1_instance1 的链接服务器,该服务器使用 SQL Server 的 Microsoft OLE DB 提供程序。EXEC    sp_addlinkedserver    @server='S1_instance1', @srvproduct='',
                                    @provider='SQLOLEDB', @datasrc='S1\instance1'
      

  6.   

    使用用于 SQL Server 的 OLE DB 创建链接服务器 
    下面的示例创建一台名为 SEATTLESales 的链接服务器,该服务器使用用于 SQL Server 的 Microsoft OLE DB 提供程序。USE master
    GO
    EXEC sp_addlinkedserver 
        'SEATTLESales',
        N'SQL Server'
    GO在 SQL Server 的实例上创建链接服务器 
    此示例在 SQL Server 的实例上创建一台名为 S1_instance1 的链接服务器,该服务器使用 SQL Server 的 Microsoft OLE DB 提供程序。EXEC    sp_addlinkedserver    @server='S1_instance1', @srvproduct='',
                                    @provider='SQLOLEDB', @datasrc='S1\instance1'
      

  7.   

    : lihonggen0(李洪根,用.NET,标准答案来了) 
    我添加一个服务器的连接,但是有个问题
    用户 'ECN\fanyb' 登录失败。
    ecn--域
    fanyb--我的机器名可能是我安装sql时的设置问题
      

  8.   

    to : cnwd() 只添加一次就可以了,其实就添加一条记录到数据库master的系统表dbo.sysservers里
    你可以在查询分析器你添加,以后就不用管了!
    如果你要用VB添加
    工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)
        Dim CN   As New ADODB.Connection                '定义数据库的连接
        Dim Rs   As New ADODB.Recordset    CN.ConnectionString = "连接字符串"
        CN.Open这样执行
        cn.execute "EXEC sp_addlinkedserver '服务器B', N'SQL Server'"
    记住,只添加一次
      

  9.   

    to : icedut(冰) 你如果是本台的SQL SERVER就不行添加了如果要添加别的机器上的服务器链接,可以参考我上面贴出的文章
      

  10.   

    用sp_addlinkedserver添加一个连服务器B的连接,是不是在 sql服务中执行啊?
    EXEC sp_addlinkedserver     '服务器B',    N'SQL Server'
    要是在能vb中设置,该怎么写啊?还有,能不能提供一个比较完整的代码啊?万分感谢!
      

  11.   

    最好是在SQL SERVER中执行VB的代码上面就有,其实就是一个cn.execute "语句"
    很简单!
      

  12.   

    楼上的
    在vb中店用存储过程 lihonggen0(李洪根,用.NET,标准答案来了) ( 
    我的机器时一个sql服务器,我相连到别的服务器上我会参考你的文章的
    谢谢
      

  13.   

    最好是在SQL SERVER中执行VB的代码上面就有,其实就是一个cn.execute "语句"
    很简单!
      

  14.   

    你可以试试opendatasource
    列如:
    select * from opendatasource(连接的字串).数据库.表名