无法为标识列

时间:2015-08-04 17:13:43

标签: sql-server data-migration identity-column

我正在将我的应用程序从一个数据库迁移到另一个数据库,并保持表结构不变。我在新表中创建相同的表并使用db链接插入值。 我收到错误消息,例如“当IDENTITY_INSERT设置为OFF时,无法在表'XYZ'中为标识列插入显式值。”因为表XYZ将ScreenConfigSettingAccessId作为标识列

以下是我用来创建表格和插入值

的脚本
     CREATE TABLE [dbo].[XYZ](
[ScreenConfigSettingAccessId] [int] IDENTITY(1,1) NOT NULL,
[APP_ID] [int] NOT NULL,
[ScreenConfigSettingId] [int] NOT NULL,
[RSRC_ID] [char](20) NOT NULL)
)


INSERT INTO [dbo].[XYX]
       (
[ScreenConfigSettingAccessId] ,
[APP_ID] ,
[ScreenConfigSettingId] ,
[RSRC_ID] 
)
SELECT 
[ScreenConfigSettingAccessId] ,
[APP_ID] ,
[ScreenConfigSettingId] ,
[RSRC_ID] 
FROM [olddatabase].[database name].[dbo].[XYX]

在旧表中,ScreenConfigSettingAccessId的值为3和4。

我想插入旧表所具有的相同数据,将IDENTITY_INSERT设置为ON并尝试但仍然不允许插入。

寻找你的建议

1 个答案:

答案 0 :(得分:0)

您需要指定表格。查看SQL联机丛书中的命令语法:SQL 2000SQL 2012(语法没有更改)。