【发布时间】:2019-06-15 11:04:27
【问题描述】:
我的尝试相当成功,我需要识别和巩固 OUTPUT 列(其中的 #)以及 #of 列真正关联的 MERGE 语句的哪一部分。我只是问我可以在一个 MERGE 条件内执行多项操作吗,如下例所示?
WHEN MATCHED
AND TARGET.ProductName <> SOURCE.ProductName
OR TARGET.Rate <> SOURCE.Rate
THEN
UPDATE SET TARGET.ProductName = SOURCE.ProductName,
TARGET.Rate = SOURCE.Rate
--MAGIC HERE ??
--CAN I ALSO
--INSERT in this same section before I do more in below condition?
WHEN NOT MATCHED BY TARGET THEN
我已经看到了从 MERGE 语句的 OUTPUT 部分的内容完成的 INSERT 示例,但是我建议的内容是否可以在不使用 OUTPUT 结果中的另一个查询的情况下完成?
【问题讨论】:
-
@Hadi:我相信有接受答案的建议,但这不是强制性的。但是,ChristianProgrammer,如果您希望接受答案,我建议您尽可能接受最好的答案。 Hadi 的回答与您的一致,但深入解释了为什么。理想情况下,这正是我们在此处寻找答案的原因。
-
@halfer 我发表了这条评论,因为用户写了他自己的答案,但没有接受。我的目标不是让我的答案被接受
-
@Hadi,没关系。你的答案看起来很好。我只是在回应您的第一句话(“您必须接受答案”),因为我认为这不正确。尽管我们希望问题作者接受答案,但接受不是强制性的。
-
@halfer 我删除了我的评论,因为用户已经接受了他的回答。当我看到用户没有“知情”徽章时,我正在写这种类型的 cmets
标签: sql sql-server tsql merge ssis