gpt4 book ai didi

仅当更改时 SQL MERGE

转载 作者:行者123 更新时间:2023-12-02 19:42:25 24 4
gpt4 key购买 nike

关于 SQL MERGE如何插入“不执行任何操作”类型的语句?例如,我现在有这个:

MERGE INTO dbo.Worker AS T
USING dbo.Collector_Worker AS S
ON T.WWID = S.WWID
WHEN MATCHED THEN UPDATE SET
T.IDSID = S.IDSID,
...
WHEN NOT MATCHED THEN
INSERT (WWID, IDSID, ...)
VALUES (S.WWID, S.IDSID, ...)
WHEN NOT MATCHED BY SOURCE THEN
UPDATE SET T.Person_Status_Type = 'INACTIVE', T.Active = 0;

还有大量其他列,其中 ...字符是。所以这很有效,除了它会更新已经存在的每一行,即使没有任何更改。由于该表有一百万行,因此存在大量不必要的修改。我只想在发生更改时更新该行。

如果我尝试添加 AND T.IDSID <> S.IDSIDON语句,那么它将失败,因为它现在尝试运行 INSERT声明。

最佳答案

事实上,我让这件事变得困难。我所要做的就是将额外的查询放在 WHEN MATCHED 上,然后一切都会按预期工作,除非发生更改,否则不会发生任何更新。

关于仅当更改时 SQL MERGE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59901264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com