Azure SQL数据库提供违反PRIMARY KEY约束

时间:2016-04-27 12:55:37

标签: sql-server azure-sql-database

我们在两台机器上运行Azure SQL数据库,进行地理复制(只读副本)。有时我们会遇到一个常见的SQL错误:

Violation of PRIMARY KEY constraint 'PK__transact__3213E82229255808'. Cannot insert duplicate key in object 'dbo.owners'. The duplicate key value is (428178d0-1234-4846-871c-769a3c40c884).

通常我没有解决问题。但是,插入/更新该表的唯一代码如下:

BEGIN TRANSACTION

IF NOT EXISTS (SELECT * FROM owners WHERE id = @ownerId)
BEGIN

    INSERT INTO owners
    (
        id
    )
    VALUES
    (
        @ownerId
    )

END
ELSE 
BEGIN

    UPDATE    owners 

    SET        
    ...
            updatedAt = GETDATE()

    WHERE    id = @ownerId

END

...

COMMIT TRANSACTION

(我删除了一些不相关的代码)

代码似乎都很完美,我唯一的选择就是复制有一些奇怪的东西。我在这里错过了什么吗?

0 个答案:

没有答案