我得到了这个选择查询的帮助,我用它来获取两列中包含空值的所有表
select count(*)
from (
select LastModifiedDate from Table1
union all
select LastModifiedDate from Table2
union all
select LastModifiedDate from Table3
) a
where LastModifiedDate is null
要更新所有三个表,有更好的方法吗
Update table1
SET LastModifiedDate = GETDATE()
WHERE LastModifiedDate is null
Update table2
SET LastModifiedDate = GETDATE()
WHERE LastModifiedDate is null
等等? 对不起,我拆分查询的一个查找CreationDate,一个查找LastModifiedDate
答案 0 :(得分:0)
如果其中任何一列为NULL,您希望更新三个表,将两列设置为当前日期时间。
三个表更新语句可以解决这个问题。它没有比这简单。
答案 1 :(得分:0)
是的,还有更好的方法。正如Gordon Linoff在评论中指出的那样,您可能会使用您提出的查询覆盖有效的创建日期。
请改为尝试:
Update table1
SET CreationDate = ISNULL(CreationDate,GETDATE())
, LastModifiedDate = GETDATE()
WHERE CreationDate is null or LastModifiedDate is null
Update table2
SET CreationDate = ISNULL(CreationDate,GETDATE())
, LastModifiedDate = GETDATE()
WHERE CreationDate is null or LastModifiedDate is null
Update table3
SET CreationDate = ISNULL(CreationDate,GETDATE())
, LastModifiedDate = GETDATE()
WHERE CreationDate is null or LastModifiedDate is null
使用ISNULL
将保留现有的CreationDate
数据。您不希望将其用于LastModifiedDate
,因为您将要修改行,因此该值应该更改。
但是,没有理由尝试重新构建您的陈述,因为它们没有任何问题。