环境如下:
服务器1  地址192.168.0.1  数据库名  TEST1    表名 T1    帐号sa  密码  1234
服务器2  地址192.168.0.2  数据库名  TEST2    表名 T2    帐号sa  密码  4321如何把T1表中的数据写入T2表中?
谢谢

解决方案 »

  1.   


    --在192.168.0.2上执行语句:
    INSERT T2
    SELECT A.*
    FROM OPENROWSET('SQLOLEDB', '192.168.0.1';'sa';'1234',
         'SELECT * FROM T1') AS A;
    虽然是一条语句,但实际上要求Ad Hoc Distributed Queries系统选项必须是开启的
      

  2.   

    上面语句好像有问题,上面的语句好像并没有指定192.168.0.1服务器上的数据库名称另外如何开启Ad Hoc Distributed Queries系统选项?谢谢
      

  3.   

    汗~,你改成这样,不就可以了:
    INSERT T2
    SELECT A.*
    FROM OPENROWSET('SQLOLEDB', '192.168.0.1';'sa';'1234',
         'SELECT * FROM 数据库.dbo.T1') AS A;
    --开启选项EXEC sp_configure 'show advanced options', 1
    RECONFIGURE WITH OVERRIDE
    GO
    EXEC sp_configure 'Ad Hoc Distributed Queries', 1
    RECONFIGURE WITH OVERRIDE
    GO
      

  4.   

    EXEC sp_configure 'show advanced options', 1
    RECONFIGURE WITH OVERRIDE
    GO
    EXEC sp_configure 'Ad Hoc Distributed Queries', 1
    RECONFIGURE WITH OVERRIDE
    GO
    执行报错DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    已将配置选项 'show advanced options' 从 1 改为 1。请运行 RECONFIGURE 语句以安装。
    服务器: 消息 15123,级别 16,状态 1,过程 sp_configure,行 78
    配置选项 'Ad Hoc Distributed Queries' 不存在,也可能是高级选项。
     
    有效的配置选项为:
      

  5.   

    EXEC sp_configure 'show advanced options', 1
    RECONFIGURE WITH OVERRIDE
    GO
    EXEC sp_configure 'Ad Hoc Distributed Queries', 1
    RECONFIGURE WITH OVERRIDE
    GO
    执行报错DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    已将配置选项 'show advanced options' 从 1 改为 1。请运行 RECONFIGURE 语句以安装。
    服务器: 消息 15123,级别 16,状态 1,过程 sp_configure,行 78
    配置选项 'Ad Hoc Distributed Queries' 不存在,也可能是高级选项。
     
    有效的配置选项为:
      

  6.   


    SELECT  * INTO T2 
    FROM OPENDATASOURCE('SQLOLEDB','Data Source=192.168.0.1;User ID=sa;Password=4321').TEST1.dbo.T1
      

  7.   

    SELECT A.*
    FROM OPENROWSET('SQLOLEDB', '192.168.0.2';'sa';'4321',
         'SELECT * FROM Test2.T2') AS A;执行错误为:
    服务器: 消息 208,级别 16,状态 1,行 1
    对象名 'Test2.T2'无效。
    服务器: 消息 8180,级别 16,状态 1,行 1
    未能准备语句。
    [OLE/DB provider returned message: 无法完成延迟准备。]我是在192.168.0.1服务器上的Test1中执行该语句的
      

  8.   

    我也不是把T1表中的所有数据全写入T2,是要有WHERE的
      

  9.   

    SELECT  * INTO T2 
    FROM OPENDATASOURCE('SQLOLEDB','Data Source=192.168.0.1;User ID=sa;Password=4321').TEST1.dbo.T1
    WHERE 条件直接把你的查询条件加上即可
      

  10.   

    INSERT T2
    SELECT A.*
    FROM OPENROWSET('SQLOLEDB', '192.168.0.1';'sa';'1234',
         'SELECT * FROM T1') AS A;