现在有两个服务器A和B,都有相同的表T,现在要将服务器A中T表的数据,用SQL语句全部增加到服务器B中的T表中去,用一条SQL语句,可否实现?请大家帮忙!

解决方案 »

  1.   

    是什么数据库啊,SQL server还是ORACLE ?都可以实现的
      

  2.   

    insert into B.dbo.T from A.dbo.T 搞定
      

  3.   

    如果表结构相同则
    insert into B.dbo.T select * from A.dbo.T
    如果不相同则
    insert into B.dbo.T(字段1,字段2......) select 字段1,字段2,..... from A.dbo.T
      

  4.   

    adoconnection1连接A
    adoquery1连接adoconnection1
    adoquery1执行下面的sqlinsert into T select   *
    FROM      OPENDATASOURCE(
             'SQLOLEDB',
             'Data Source=B;User ID=sa;Password=B的密码'
             ).B的库.dbo.T
    指定B的密码,B的库名
      

  5.   

    看一下这篇文章,对你有帮助的。   I have two MS SQL Servers 2000 on two machines. Is there a way I can create a view table in ServerA, which would look at ServerB, using a ServerA user, who does not exists in ServerB.  
     
       Ok, lets go step by step. We're going to use Transact SQL language to do this, so go to the Query Analyzer and login to the Local Server (ServerA). First Link the ServerB to ServerA:sp_addlinkedserver 'ServerB', 'SQL Server'Then establish the user that we'll use to connect from ServerA to ServerB. For that task we'll use a valid account in ServerA (with the appropriate permissions) and map it to a valid account in ServerB. That account must have permission to access the source table for the view in ServerA:sp_addlinkedsrvlogin
    @rmtsrvname = 'ServerB',
    @useself = 'false',
    @locallogin = 'YourLocalUserFromA',
    @rmtuser = 'YourRemoteUserFromB',
    @rmtpassword = 'PasswordOf_rmtuser'Login to ServerA with the account that we mapped to ServerB and create the view:CREATE VIEW dbo.MyView
    AS
    SELECT Field1, Field2, FieldN
    FROM ServerB.RemoteDB.dbo.RemoteTable
    GOStart using it, and good luck:SELECT * FROM MyView
      

  6.   

    转贴:在我们做数据库程序开发的时候,经常会遇到这种情况:需要将一个数据库服务器中的数据导入到另一个
    数据库服务器的表中。通常我们会使用这种方法:先把一个数据库中的数据取出来放到某出,然后再把这
    些数据一条条插入到目的数据库中,这种方法效率较低,写起程序来也很繁琐,容易出错。另外一种方法
    是使用bcp或BULK INSERT语句,将数据导入到一个文件中,再从此文件中导出到目的数据库,这种方法虽
    然效率稍高,但也有很多不如意的地方,单是在导入时怎样找到另外一台机器上的数据导入文件就很麻烦。
    最方便的一种方法,我想也是效率最高的方法,应该是这样:
    比如有两个数据库服务器:zl和ljw,里面都有一个数据库taxitemp(也可以不同名),数据库里有一个表,
    叫users,我们现在想把zl中的users数据导入到ljw中,可以这样写sql语句(假设现在连接的是zl数据库):
    insert into ljw.taxitemp.dbo.users
    select * from users
    这样,通过一条sql语句就完成了不同数据库服务器之间的数据复制。
    有人会说,这种sql语句我也会写,我也想到了,但是没办法执行。
    的确,单纯的这样一条语句没办法执行,因为数据库不知道ljw是什么服务器,也不知道怎样登录,当然会
    报错。我们可以这样解决注册远程数据库服务器和登录的问题:
    注册远程数据库服务器:
    EXEC sp_addlinkedserver 'ljw', N'SQL Server' 
    注册远程数据库服务器的登录方法:
    EXEC sp_addlinkedsrvlogin 'ljw', 'false', NULL, 'sa', 'zz'
    至于这两个存储过程的详细用法,我就不多讲了,大家看看帮助就明白了。只要我们先执行远程数据库服务器注册和登录方法注册,然后就可以把远程数据库当成本地数据库使用了。
      

  7.   

    exec sp_addlinkserver 'B'
    insert into t select  * from B.dbl.t where not exists (select * from t)
      

  8.   

    试试这条SQL语句,应该是可以的:(假设当前服务器为ServerNameA,数据库为DatabaseNameA,表名为TableNameA)
    insert into TableNameA
    select *
    from OPENDATASOURCE(
              'SQLOLEDB', 
              'Data Source=ServerNameB;User ID=YourUserID;Password=YourPassword'
             ).DatabaseNameB.dbo.TableNameB这条语句将服务器ServerNameB下的数据库DatabaseB中的表TableNameB中的数据追加到当前服务器ServerNameA下的数据库DatabaseNameA中的表TableNameA中去。
      

  9.   

    Select * Into 新表名 from 原表
      

  10.   

    insert into B.dbo.T from A.dbo.T   這個簡單不用太復雜了。。:)
      

  11.   

    如果表结构相同则
    insert into B.dbo.T select * from A.dbo.T
    如果不相同则
    insert into B.dbo.T(字段1,字段2......) select 字段1,字段2,..... from A.dbo.T就是这样!!