0

2つの列にnull値を持つすべてのテーブルを取得するために使用しているこのselectクエリで助けられました

select count(*)
from (
   select LastModifiedDate from Table1
      union all
   select LastModifiedDate from Table2
      union all
   select LastModifiedDate from Table3
) a 
where LastModifiedDate is null

3つのテーブルすべてを更新するには、それを行うためのより良い方法があります。

Update table1
SET LastModifiedDate = GETDATE()
WHERE LastModifiedDate is null

Update table2
SET LastModifiedDate = GETDATE()
WHERE LastModifiedDate is null

等々?申し訳ありませんが、クエリを分割して、CreationDateを検索し、LastModifiedDateを検索します

4

2 に答える 2

0

3つのテーブルを更新し、これらの列のいずれかがNULLの場合は、2つの列を現在の日時に設定します。

3つのテーブル更新ステートメントでうまくいきます。それ以上に単純なことはありません。

于 2012-08-09T18:21:06.247 に答える
0

はい、もっと良い方法があります。ゴードン・リノフがコメントで指摘したように、有効な作成日を提案されたクエリで上書きする可能性があります。

代わりにこれを試してください:

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行を変更するため、値を変更する必要があるため、これを使用する必要はありません。

ただし、ステートメントに問題はないため、ステートメントを再構築する理由はありません。

于 2012-08-09T18:31:41.473 に答える