我该如何解决“在表中标识列一个明确的价值”?(How can i solve “An explici

2019-10-28 20:41发布

如果我尝试为我的出现表错误添加一些数据:

错误:消息8101,级别16,状态1,第1行表“ENG_PREP”的标识列的显式值只能在使用的列列表中指定了IDENTITY_INSERT为ON。

insert into ENG_PREP VALUES('572012-01-1,572012-01-2,572012-01-3,572013-01-1,572013-01-2',
'',
'500',
'',
'A320 P.001-A',
'Removal of the LH Wing Safety Rope',
'',
'',
'',
'0',
'',
'AF',
'12-00-00-081-001',
'',
'',
'',
'',
'',
'',
'' )

Answer 1:

如果你必须写标识列,使用

SET IDENTITY_INSERT YourTableName ON

正如错误信息提示。

否则,不要试图写入标识列。



Answer 2:

您的发言

insert into ENG_PREP

会尝试将值插入所有表的列 - 包括IDENTITY列,你永远不应该插入一个特定的值。

你需要做的是指定表格的列你真的想值插入,并离开了IDENTITY列 - 即会自动由SQL Server本身处理:

 INSERT INTO dbo.ENG_PREP(column1, column2, ...., columnX)
 VALUES(values1, values2, ...., valuesX)

你只需要指定你真的想设置一个值(例如,你或许可以跳过其中大部分列,在那里你只需插入这些列''在你的例子)。



文章来源: How can i solve “An explicit value for the identity column in table”?