将数据复制到表A到表B中(Is Identity == Yes)

时间:2013-10-16 08:43:58

标签: sql sql-server tsql

我在SQL Server数据库中有两个几乎相同的表A和B.

表A包含数据和主键X设置为Is Identity == No

表B不包含任何数据,但主键X设置为Is Identity == YesIdentity Increment = 1, Identity Seed = 1)。

主键X中的数据增加1到100,即表A有100条记录,第一条记录为1,第100条记录为100条。

如何以最简单的方式将数据从表A复制到表B而没有错误。

3 个答案:

答案 0 :(得分:4)

您在运行set identity_insert tableB on

之前使用insert
 set identity_insert tableB on

 insert tableB (Id, field1, field2)
 select id, field1, field2 from tablea

 set identity_insert tableB off

答案 1 :(得分:0)

是的,您需要枚举列。另一方面 - 在B表上是必要的身份,而它取自A?

  

主键X中的数据增加1到100,即表A有100条记录,第一条记录为1,第100条记录为100条。

遵循此规则似乎不需要B的增量,而身份来自表A.

最终考虑在B上重新设置以满足IDENT_CURRENT限制。 (Reseed information

答案 2 :(得分:0)

如果您确定tableA中有100行且id为1到100而没有重复,那么您可以轻松地将tableA数据复制到tableB,

insert tableB (field1, field2) 
select field1, field2 from tableA order by id
  

Id字段将自动生成标识列