📌  相关文章
📜  消息 8101,级别 16,状态 1,第 7 行 只有在使用列列表并且 IDENTITY_INSERT 为 ON 时,才能指定表“部门”中标识列的显式值. (1)

📅  最后修改于: 2023-12-03 14:56:06.147000             🧑  作者: Mango

消息 8101-表“部门”中标识列的显式值仅在使用列列表且 IDENTITY_INSERT 为 ON 时指定

如果您在使用 SQL Server 数据库时遇到类似于上述消息,那么您需要了解以下几点:

  • 首先要检查您的 SQL 语句是否使用了列列表(Column List)
  • 其次,要检查您是否已经开启了 IDENTITY_INSERT 属性

如果您使用了列列表却未开启 IDENTITY_INSERT 属性,那么您将无法指定表“部门”中标识列的显式值。

因为,在列列表中指定了要插入的列,但默认情况下 INSERT 语句会自动填充标识列。在这种情况下,您必须开启 IDENTITY_INSERT 属性,才能指定标识列的显式值。

以下是开启 IDENTITY_INSERT 属性的示例代码片段:

SET IDENTITY_INSERT 部门 ON

INSERT INTO 部门 (部门编号, 部门名称)
VALUES (10, '测试部门')

请注意,一旦使用完毕,必须关闭 IDENTITY_INSERT 属性,以免对其他表造成影响。

SET IDENTITY_INSERT 部门 OFF

总之,您需要确保使用了正确的语法,才能成功插入指定值到标识列。

希望这篇介绍能够帮助您解决消息 8101 的问题。