小编Jar*_*rth的帖子

合并问题 SQL Server

我正在尝试创建一个过程,该过程将从临时表中获取值,并将它们加载到另一个表中。第二个表在其三列(不包括主键)上有一个复合唯一约束我正在使用合并语句尝试处理上传,并不断收到错误消息,提示消息 2627,级别 14,状态 1,第 13 行

Violation of UNIQUE KEY constraint 'IX_table'. 
Cannot insert duplicate key in object 'dbo.table'. The duplicate key value is (aaa, aaa, aaa).
Run Code Online (Sandbox Code Playgroud)

我真的很困惑,因为我使用合并语句的全部原因是为了防止这种情况发生。这是过程的相关部分(名称已更改,并且对临时表的插入已更改)

create table #TempTable(Id int
                        , str1 varchar(3)
                        , str2 varchar(15)
                        , str3 varchar(10))

INSERT INTO #TempTable
           (str1 
           ,str2 
           ,str3)
     VALUES
           ('aaa','aaa','aaa'), ('bbb', 'bbb', 'bbb'), ('aaa','aaa','aaa')

MERGE dbo.table AS t
    USING #TempTable AS s
    ON (t.str1 = s.str1
    AND t.str2 = s.str2
    AND t.str3 = s.str3)
    WHEN MATCHED THEN 
        UPDATE SET t.str1 = …
Run Code Online (Sandbox Code Playgroud)

sql-server merge unique-constraint

5
推荐指数
1
解决办法
4560
查看次数

标签 统计

merge ×1

sql-server ×1

unique-constraint ×1