在Target表中有一个PK列usr_cd
,它不存在于Source表中。因此,从Source到Target插入时我想生成一个唯一的代码。当我使用MERGE
语句时,如何实现此目的?
尝试以下选项没有运气:
MERGE
内使用。MERGE
中的INSERT
内执行SP。向Target表添加默认值是一个选项,但我想避免这种情况。
如果在使用MERGE
时有任何其他方法可以让我知道。
答案 0 :(得分:3)
确实,NEXT VALUE FOR
的文档说:
限制和限制
以下不能使用
NEXT VALUE FOR
功能 情况:在
MERGE
声明中。 (NEXT VALUE FOR
函数除外 用于目标表中的默认约束,并使用默认值 在CREATE
语句的MERGE
语句中。)
因此,如果您不想在目标表定义或简单NEXT VALUE FOR
中使用IDENTITY
作为默认约束,那么我唯一能想到的就是触发器。 INSTEAD OF INSERT
触发器。