トップ回答者
UPDATE文で同一テーブルをINNER JOIN

質問
-
Windows Server 2003(R2 with SP2)
SQL Server 2005 Standard Edition SP2
以下のような構成のTestテーブルがあります。列名 データ型 NOT NULL
--------------------------------------------------
[EmployeeId] [nchar](4) NOT NULL
[SeqNo] [int] NOT NULL
[Name] [nvarchar](50) NULL主キーは、[EmployeeId]と[SeqNo]です。
データのイメージは以下です。
[EmployeeId][SeqNo][Name]
--------------------------------------
1000 0 田中 太郎
1000 1 NULL
1000 2 NULL
2000 0 佐藤 次郎
2000 1 NULL
3000 0 鈴木 三郎
3000 1 NULL
3000 2 NULL
--------------------------------------やりたいことは、
[EmployeeId]が一致するレコードに
[SeqNo]=0の[Name]を設定するUPDATEです。以下のようなUpdate文を作成し
実行したところ、ほとんどの場合は成功していたのですが
稀に正常に更新されない場合があります。--------------------------------------
UPDATE Test
SET Test.Name = TestDummy.Name
FROM Test
INNER JOIN Test AS TestDummy
ON Test.EmployeeId = TestDummy.EmployeeId
AND TestDummy.SeqNo = 0
--------------------------------------このような同一テーブルをINNER JOIN するような
UPDATEは行うべきではないですか?ほとんどの場合が、正常に更新できているだけに
正常に更新できない理由がわからず、
腑に落ちない状況です。アドバイスのほうをよろしくお願いします。