如何在同一数据库中复制表并在sql中保留原始ID

如何在同一数据库中复制表并在sql中保留原始ID,sql,database,tsql,duplicates,Sql,Database,Tsql,Duplicates,我需要复制一份TableA,并在同一数据库中将其命名为TableB,我这样做了: SELECT * INTO TableB FROM TableA 但是所有的ID也在TableB中自动递增,并且不保留原始ID,所以我得到了TableA的一个副本,但是ID是不同的 我希望ID与TableA相同,因为我需要一份副本 这似乎很容易,但我对这有点陌生。 谢谢您需要打开identity insert以允许将自定义ID插入到新表中 SET IDENTITY_INSERT [ database_name

我需要复制一份TableA,并在同一数据库中将其命名为TableB,我这样做了:

SELECT * INTO TableB FROM TableA 
但是所有的ID也在TableB中自动递增,并且不保留原始ID,所以我得到了TableA的一个副本,但是ID是不同的

我希望ID与TableA相同,因为我需要一份副本

这似乎很容易,但我对这有点陌生。
谢谢

您需要打开identity insert以允许将自定义ID插入到新表中

SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF }

E.G. SET IDENTITY_INSERT TableB ON
有关更多详细信息,请参阅以下MSDN文章:


只需确保在完成后将其设置回off,因为将其保持为on不好。

由于您需要保留ID,并且不希望数据库自动增加ID值,您可以将
IDENTITY\u INSERT
设置为on,以便可以在插入期间指定ID值并将其保留

SET IDENTITY_INSERT TableB ON

SELECT * INTO TableB FROM TableA 

SET IDENTITY_INSERT TableB OFF

很高兴提供帮助,欢迎使用Stack Overflow!如果此答案或任何其他答案解决了您的问题,请将其标记为已接受=)@DarkCyka,没问题,您可以在一段时间后接受答案。