aTable1、aTable2という名前の2つのテーブルがあると仮定します
aTable1のuserIDはidentityに設定されており、次のデータが含まれています。
userID email FirstName LastName
1 NULL C CC
2 NULL D DD
3 a@yahoo.com A AA
4 b@yahoo.com B BB
5 e@yahoo.com E EE
6 f@yahoo.com NULL NULL
7 g@yahoo.com NULL NULL
aTable2には、次のデータが含まれています。
userID email FirstName LastName Title
3 a@yahoo.com A AA student
4 b@yahoo.com B BB student
5 e@yahoo.com E EE student
NULL NULL C CC dean
NULL NULL D DD advisor
NULL f@yahoo.com NULL NULL student2
NULL g@yahoo.com NULL NULL student3
aTable1に基づいてaTable2.userIDを更新したいのですが、2つのテーブルにnull値が含まれていることがわかっているので、次のようにします。
set ANSI_NULLS off
update aTable2
set aTable2.userID = a.userID
from aTable a, aTable2 b
where a.FirstName = b.FirstName and a.LastName = b.LastName and a.email = b.email
ただし、この更新によってすべてのuserIDが更新されるわけではなく、実際には、電子メールがnullに等しくないユーザーIDのみが更新されますが、ANSI_NULLSはすでにオフに設定されています。私は何を間違えましたか?