违反自动增量PK的主键约束

时间:2016-10-03 02:46:25

标签: sql sql-server sql-server-2012

我有一个历史表,在另一个表的触发器上填充,插入的数据除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

我非常感谢大家的意见,我知道它可能没有任何直接的答案,所以我正在寻找我可能错过的内容。

0 个答案:

没有答案