2010-08-04 103 views
1

我在我的测试数据库数据表标签。复制自动增量数据表

ID int autoincrement 
Name nvarchar(255) 

我想将此表转移到我的生产数据库。

怎么办呢,如果我想有相同的ID的foreach元素

的问题是,在我的testdatable开始指数为15,而一些IDS不存在的,因为我删除他们。

所以:

形势试验确定年代

15 sport 
18 money 
30 homework 

在生产数据表

15 sport 
18 money 
30 homework 

在开始生产的DataTable理想状况是空的,并已自动递增了。

回答

5

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

SET IDENTITY_INSERT YourNewTable ON 

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

SET IDENTITY_INSERT YourNewTable OFF 
+1

当然,你可能需要一个链接的服务器给DEV baox可以做到这一点,或者将整个开发表复制到prod服务器上的临时表中,然后执行此操作。 – HLGEM 2010-08-04 14:55:42

+0

非常感谢:) – user278618 2010-08-04 14:56:19

1

您可以打开关闭限制为自动递增的字段,将数据装载到表中,然后打开自动递增的字段回。

1

可以使用

SET IDENTITY_INSERT MY_TABLE ON 
INSERT MY_TABLE (Id, Field1) VALUES (15, 'sport') 
SET IDENTITY_INSERT MY_TABLE OFF 

或进行备份/恢复,如果督促数据库是空的,因为你说的(假设它是在同一个数据库)

+0

更好地使用select子句而不是values子句。 – HLGEM 2010-08-04 14:54:41