Sql server 2005 复制自动递增的数据表
我的测试数据库中有datatable标记Sql server 2005 复制自动递增的数据表,sql-server-2005,tsql,Sql Server 2005,Tsql,我的测试数据库中有datatable标记 ID int autoincrement Name nvarchar(255) 我想将此表传输到我的生产数据库 如果我希望每个元素都有相同的ID,该怎么做 问题是,我在testdatable的起始索引是15,并且一些ID不存在,因为我删除了它们 因此: 测试数据表中的情况 15 sport 18 money 30 homework 生产数据表中的期望情况 15 sport 18 money 30 homework 开始时,生产数据表为空,并且也具有
ID int autoincrement
Name nvarchar(255)
我想将此表传输到我的生产数据库
如果我希望每个元素都有相同的ID,该怎么做
问题是,我在testdatable的起始索引是15,并且一些ID不存在,因为我删除了它们
因此:
测试数据表中的情况
15 sport
18 money
30 homework
生产数据表中的期望情况
15 sport
18 money
30 homework
开始时,生产数据表为空,并且也具有自动递增功能。在将数据插入新表之前,使用目标表上的标识插入功能
SET IDENTITY_INSERT YourNewTable ON
INSERT YourNewTable (ID, Name) SELECT ID,Name FROM YourOldTable
SET IDENTITY_INSERT YourNewTable OFF
在将数据插入新表之前,请在目标表上使用identity_insert功能
SET IDENTITY_INSERT YourNewTable ON
INSERT YourNewTable (ID, Name) SELECT ID,Name FROM YourOldTable
SET IDENTITY_INSERT YourNewTable OFF
您可以关闭自动递增字段的约束,将数据加载到表中,然后重新打开自动递增字段。您可以关闭自动递增字段的约束,将数据加载到表中,然后重新打开自动递增字段。您可以使用
SET IDENTITY_INSERT MY_TABLE ON
INSERT MY_TABLE (Id, Field1) VALUES (15, 'sport')
SET IDENTITY_INSERT MY_TABLE OFF
或者,如果prod数据库如您所说是空的(假设它是同一个数据库),则进行备份/还原。您可以使用
SET IDENTITY_INSERT MY_TABLE ON
INSERT MY_TABLE (Id, Field1) VALUES (15, 'sport')
SET IDENTITY_INSERT MY_TABLE OFF
或者,如果prod数据库如您所说是空的,则进行备份/恢复(假设它是同一个数据库)对于此操作,最好使用select子句而不是values子句。对于此操作,最好使用select子句而不是values子句。当然,您可能需要一个到dev baox的链接服务器。请执行此操作,或者将整个dev表复制到prod服务器上的暂存表中,然后执行此操作。当然,您可能需要一个到dev baox的链接服务器这会将整个dev表复制到prod服务器上的staging表中,然后执行此操作。