在几台电脑上,同样的数据库同样的表.
怎么进行分布式查询...
迷惘...
老大要求这样做...
来CSDN求助.
有实例的贴实例,有代码的贴代码,谢谢

解决方案 »

  1.   

    多个 SQL Server 实例上的分布式查询
    在运行多个 SQL Server 实例的服务器上指定 Microsoft® SQL Server™ 2000 实例时,不需要更改分布式查询中使用的 Transact-SQL 元素的语法。可以使用以下两种方法在分布式查询中指定实例: 使用 sp_addlinkedserver 的 @datasrc 参数中的 'server_name/instance_name' 语法指定服务器名称。
    在连接字符串中指定 Server=server_name; INSTANCENAME=instance_name。 
    如果没有指定实例,分布式查询将连接到指定服务器上 SQL Server 2000 的默认实例。下面的示例在名为 London 的服务器上指定一个名为 Payroll 的特定实例:-- Define a linked server on an instance of SQL Server using @datasrc.
    sp_addlinkedserver
        @server = 'LondonPayroll1',
        @provider = 'SQLOLEDB',
        @datasource = 'London/Payroll'-- Define a linked server on an instance of SQL Server using
    -- INSTANCENAME in a provider string.
    sp_addlinkedserver
        @server = 'LondonPayroll2',
        @provider = 'SQLOLEDB',
        @provstr = 'Server=London;INSTANCENAME=Payroll'-- Specify an instance of SQL Server in OPENDATASOURCE
    -- using Data Source.
    SELECT *
    FROM OPENDATASOURCE(
              'SQLOLEDB',
              'Data Source=London/Payroll;User ID=MyUID;Password=MyPass'
                       ).Northwind.dbo.Categories-- Specify an instance of SQL Server in OPENROWSET
    -- using a provider string.
    SELECT a.*
    FROM OPENROWSET(
              'SQLOLEDB',
              'Data Source=London;INSTANCENAME=Payroll;
               User ID=MyUID;Password=MyPass',
               Northwind.dbo.Categories
                    ) AS a-- Specify an instance of SQL Server in OPENROWSET
    -- using a the datasource parameter.
    SELECT a.*
    FROM OPENROWSET(
              'SQLOLEDB','London/Payroll','MyUID','MyPass',
              'SELECT * FROM Northwind.dbo.Categories'
                    ) AS a
    ©1988-2000 Microsoft Corporation。保留所有权利。
      

  2.   

    参照:http://blog.sina.com.cn/s/blog_5016361901009hdb.html
      

  3.   

    创建链接服务器。链接服务器让用户可以对 OLE DB 数据源进行分布式异类查询。在使用 sp_addlinkedserver 创建链接服务器后,可对该服务器运行分布式查询。如果链接服务器定义为 SQL Server 实例,则可执行远程存储过程。
      

  4.   

    Microsoft® SQL Server™ 允许创建与称为链接服务器的 OLE DB 数据源的链接。在链接到 OLE DB 数据源之后,可以: 从 OLE DB 数据源引用行集,作为 Transact-SQL 语句中的表。
    将命令传递给 OLE DB 数据源,并包含结果行集,作为 Transact-SQL 语句中的表。 每个分布式查询都可以引用多个链接的服务器,而且可以对每个链接的服务器分别执行更新或读取操作。单个分布式查询可以对某些链接的服务器执行读取操作,并且对其它链接的服务器执行更新操作。通常情况下,每当某个事务可能更新多个链接服务器中的数据时,Microsoft SQL Server 都要求相应的 OLE DB 提供程序支持分布式事务。因此,链接服务器上所支持的查询类型取决于 OLE DB 提供程序中对事务的支持级别。OLE DB 为事务管理定义了两个可选的接口: ITransactionLocal 支持 OLE DB 数据源中的本地事务。
    ITransactionJoin 允许提供程序联结包含其它资源管理器的分布式事务。 
    所有支持 ITransactionJoin 的提供程序也都支持 ITransactionLocal。如果在连接是自动提交模式时执行分布式查询,则应用以下规则: http://www.mscto.com 对于不支持 ItransactionLocal 的提供程序,只允许执行读取操作。
    对于支持 ITransactionLocal 的提供程序,允许执行所有更新操作。 
    主控 SQL Server 会自动调用每个参与更新操作的链接的服务器中的 ITransactionLocal,以启动本地事务,并在语句执行成功时提交或在语句执行失败时回滚。如果分布式查询是针对分布式分区视图或者是在连接为显式或隐性事务时执行,则应用下列规则: 对于不支持 ITransactionJoin 的提供程序,只允许执行读取操作。不支持任何事务或只支持 ITransactionLocal 的提供程序不能参与更新操作。
    如果 SET XACT_ABORT 设置为 ON,则对于支持 ITransactionJoin 的任意提供程序都允许执行所有的更新操作。主控 SQL Server 会自动调用每个参与更新操作的链接服务器中的 ITransactionJoin,以便在分布式事务中登记该服务器。然后当主控服务器表示要提交或回滚事务时,MS DTC 将提交或者回滚。
    如果 SET XACT_ABORT 设置为 OFF,则链接服务器还必须支持嵌套事务,才能对其执行更新操作。当会话已经有一个现有事务时,如果提供程序支持调用 ITransactionLocal::StartTransaction,则支持嵌套事务。这使 SQL Server 得以回滚分布式查询中的单个语句,而不是回滚整个事务。 
    上述规则意味着提供程序的下列限制不支持嵌套事务:仅在 XACT_ABORT 选项设置为 ON 时,分布式事务中才允许更新操作。