从具有自动递增列的 table 复制数据
Copying data from a table with auto increment column
我在 SQL 服务器中有一个 table,其中的数据有一个自动递增列。自动递增列中的数据不是顺序的。就像 1, 2, 3, 5, 6, 7, 9
(缺少 4 和 8)。
我想将此 table 中的确切数据复制到另一个新的和空的完全相同的 table。目标 table 也有一个自动递增列。
问题:当我使用下面的查询复制数据时,AttachmentID
有新的不同值
INSERT INTO FPSDB_new.dbo.Form_Attachment
SELECT
CategoryID
FROM
FPSDB.dbo.Form_Attachment
destination 和 source 中的 Form_Attachment
table 与下面相同
CREATE TABLE [dbo].[Form_Attachment]
(
[AttachmentID] [int] IDENTITY(1,1) NOT NULL,
[CategoryID] [int] NULL
)
是否有 SQL 查询解决方案使两个 table 具有相同的数据?
您可以在交易中使用 SET IDENTITY_INSERT ON
插入到 IDENTITY
列(不要忘记事后将其关闭):
How to turn IDENTITY_INSERT on and off using SQL Server 2008?
SET IDENTITY_INSERT FPSDB_new.dbo.Form_Attachment ON
INSERT INTO FPSDB_new.dbo.Form_Attachment ( AttachmentID, CategoryID )
SELECT
AttachmentID,
CategoryID
FROM
FPSDB.dbo.Form_Attachment
SET IDENTITY_INSERT FPSDB_new.dbo.Form_Attachment OFF
您也可以这样做:
删除副本table
创建为select,这会将确切的结构和数据复制到新的table。
Select *
into new_table
from old_table
您可以使用此命令:SET IDENTITY_INSERT to ON
我在 SQL 服务器中有一个 table,其中的数据有一个自动递增列。自动递增列中的数据不是顺序的。就像 1, 2, 3, 5, 6, 7, 9
(缺少 4 和 8)。
我想将此 table 中的确切数据复制到另一个新的和空的完全相同的 table。目标 table 也有一个自动递增列。
问题:当我使用下面的查询复制数据时,AttachmentID
有新的不同值
INSERT INTO FPSDB_new.dbo.Form_Attachment
SELECT
CategoryID
FROM
FPSDB.dbo.Form_Attachment
destination 和 source 中的 Form_Attachment
table 与下面相同
CREATE TABLE [dbo].[Form_Attachment]
(
[AttachmentID] [int] IDENTITY(1,1) NOT NULL,
[CategoryID] [int] NULL
)
是否有 SQL 查询解决方案使两个 table 具有相同的数据?
您可以在交易中使用 SET IDENTITY_INSERT ON
插入到 IDENTITY
列(不要忘记事后将其关闭):
How to turn IDENTITY_INSERT on and off using SQL Server 2008?
SET IDENTITY_INSERT FPSDB_new.dbo.Form_Attachment ON
INSERT INTO FPSDB_new.dbo.Form_Attachment ( AttachmentID, CategoryID )
SELECT
AttachmentID,
CategoryID
FROM
FPSDB.dbo.Form_Attachment
SET IDENTITY_INSERT FPSDB_new.dbo.Form_Attachment OFF
您也可以这样做:
删除副本table
创建为select,这会将确切的结构和数据复制到新的table。
Select * into new_table from old_table
您可以使用此命令:SET IDENTITY_INSERT to ON