复制自动增量数据表

时间:2010-08-04 14:34:18

标签: sql-server-2005 tsql

我在我的测试数据库数据表标签。

ID int autoincrement
Name nvarchar(255)

我想将此表格传输到我的生产数据库。

如果我想拥有相同的ids foreach元素

,该如何做到这一点

问题是我在testdatable的起始索引是15,而且有些id不存在,因为我删除了它们。

所以:

Test datable的情况

15 sport
18 money
30 homework

生产数据表中的所需情况

15 sport
18 money
30 homework

在开始时,生产数据表为空,并且也有自动增量。

3 个答案:

答案 0 :(得分:5)

在将数据插入新表之前,请在目标表上使用identity_insert功能。

SET IDENTITY_INSERT YourNewTable ON

INSERT YourNewTable (ID, Name) SELECT ID,Name FROM YourOldTable

SET IDENTITY_INSERT YourNewTable OFF

答案 1 :(得分:1)

您可以关闭自动递增字段的约束,将数据加载到表格中,然后重新打开自动递增字段。

答案 2 :(得分:1)

你可以使用

SET IDENTITY_INSERT MY_TABLE ON
INSERT MY_TABLE (Id, Field1) VALUES (15, 'sport')
SET IDENTITY_INSERT MY_TABLE OFF
如果你说的prod数据库是空的(假设它是同一个数据库),那么

或进行备份/恢复