如何将一个数据库中的一个表复制到另一个数据库的表中去

时间:2024-02-29 15:41:33

第一种情况:将a数据库.dbo.a表的数据追加到b数据库.dbo.b表中 (条件:此时b数据库中已创建好了b表
inert   into   b数据库.dbo.b表 
select  *  from   a数据库.dbo.a表   [where   条件]

此T-SQL语句会有异常    仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表\'b数据库.dbo.b表\'中的标识列指定显式值。

原因:b数据库.dbo.b表中某列别设置成自动增长(一般为主键ID)。

解决:把 * 变成 指定 [列名] ,把自动增长的那一列去掉。

第二种情况:将a数据库.dbo.a表的数据复制到b数据库.dbo.b表中 (条件:此时b数据库中没有创建b表或同名的表

select   *  into   b数据库.dbo.b表    from   a数据库.dbo.a表   [where 条件]

执行完此语句后,b数据库中将会创建和a数据库.dbo.a表 一样结构的b表。通过此语句创建的b表没有主键。

 

 1、同服务器   select   *   from   数据库名.dbo.表名   where   条件   
  2、不同服务器     
  SELECT   *   FROM   OpenRowset(\'MSDASQL\',   \'Driver=SQL   Server;Server=服务器名(或IP);UID=sa;PWD=服务器数据库密码\',   数据库名.dbo.表   )   where   条件   
  SELECT   *   
  FROM   OPENROWSET(\'SQLOLEDB\',\'服务器名(或IP)\';\'sa\';\'服务器数据库密码\',   
        \'查询的sql语句\')     
    
  SELECT       *   
  FROM           OPENDATASOURCE(   
                    \'SQLOLEDB\',   
                    \'Data   Source=服务器名(或IP);User   ID=sa;Password=服务器数据库密码\'   
                    ).数据库名.dbo.表   where   条件