我有一个历史表,在另一个表的触发器上填充,插入的数据除3个系统列外都是ID/CreatedBy/CreatedDate
即使ID为PrimaryKey是一个自动增量,并且总是在不提供ID(PK)值的情况下填充表,因此ID将始终自动生成,我们会收到主键冲突错误。
违反PRIMARY KEY约束' PK_HistoryTablename'。不能 在对象' dbo.HistoryTablename'中插入重复键。重复 键值为(132137212)。
发生这种情况的可能原因是什么?
注意:出于此问题的目的,假设触发器查询没有错误。我正在寻找其他原因如何在某些时间点发生。这个问题很少发生,例如一年左右,而查询每天运行一次。
由于受欢迎的需求,这里是示例触发器查询。
ALTER TRIGGER [dbo].[tr_Tablename]
ON [dbo].[Tablename]
AFTER INSERT ,UPDATE
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [dbo].[HistoryTablename]
([Col1]
,[Col2]
,[Col3]
SELECT [Col1]
,[Col2]
,[Col3]
FROM Inserted
WHERE NOT (SYSTEM_USER = 'aparticularsqluser'
AND [Col2] = 'Y');
END
我非常感谢大家的意见,我知道它可能没有任何直接的答案,所以我正在寻找我可能错过的内容。