我的数据库中有一个表 A_tbl
。我在 A_tbl
上创建了一个触发器来捕获插入的记录。触发器正在我的队列表中插入记录 B_tbl
。此表有一个 Identity
列,其属性“不用于复制”为 1。
A_tbl
(Id, name, value) 以Id
作为主键B_tbl
(uniqueId, Id) 与uniqueId
作为Identity
列
执行此操作的触发代码:
Insert into B_tbl (Id)
select i.Id from inserted
现在我的表“B”被复制到另一个数据库服务器,现在当我插入表“A”时,它导致了这个错误:
当 IDENTITY_INSERT 设置为 ON 或复制用户插入 NOT FOR REPLICATION 标识列时,必须为表“B_tbl”中的标识列指定显式值。 (来源:MSSQLServer,错误号:545)
请帮我解决这个问题。
原文由 agm92 发布,翻译遵循 CC BY-SA 4.0 许可协议
只是为喜欢我的人添加一个可能的陷阱,他们按照书本做了所有事情并且仍然得到了信息。
检查插入时的触发器。他们可能会在执行没有显式标识列值的代码时尝试创建更多行。
如果是这种情况,请禁用触发器(或删除并重新创建它)。