SQL SERVER 将一个数据库中的表和数据复制到另一个数据库中

时间:2021-05-25 20:16:37

第一种情况:将A数据库.dbo.A表的数据追加到B数据库.dbo.B表中 (条件:此时B数据库中已创建好了B表)

insert  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表没有主键。并且再次使用该语句后也会报错【提示信息:已经存在B表】