【发布时间】:2018-09-26 09:16:39
【问题描述】:
我有一个 TSQL 存储过程,它对必须匹配某些条件的表执行 UPDATE。这会将“ProcessDate”更新为 GETDATE()。但是,所有不匹配的数据永远不会更新此 ProcessDate(因为没有匹配,它保持为 NULL)。有没有办法同时更新不匹配的记录上的 ProcessDate ?我当前的解决方案是在第一个运行后简单地添加一个额外的 UPDATE 语句以返回并将所有 ProcessDate = NULL 更新为 GETDATE(),但不确定是否有更好的方法来执行此操作?谢谢。
【问题讨论】:
-
为什么不直接将您的加入更改为
ON target.key = src.key OR target.ProcessDate IS NULL? -
我想你需要提供一些数据来说明你的意思。我读了你的帖子至少 3 次,但仍然不明白你的意思,因为对我来说,你的所有记录可以分为两类,1. 匹配的记录 2. 不匹配的记录,并且你想更新两者中的记录类别,那么为什么不直接更新所有记录而不使用任何 where 子句呢?这里一定有问题
-
如果您从这里开始How to post a T-SQL question on a public forum,您将获得更多有用的信息,以便我们有更多的工作要做。
标签: sql-server tsql