SQL Server Management Studio 2005 の次の T-SQL コードがあります。
UPDATE O
SET DATAREVISIONTYPE = 'Modify', O.OriginalUserID = OriginalUserID, O.EmployeeBirthdate = EmployeeBirthdate, O.User_ID = User_ID
FROM LRN_Upload_Prep as O
WHERE DATAREVISIONTYPE = 'Add' AND
(SELECT COUNT([OriginalUserId]) FROM Lrn_Upload_Prep WHERE DataRevisionType = 'Transfer' AND FirstName = O.FirstName
AND LastName = O.LastName AND EmployeeEmailAddress = O.EmployeeEmailAddress AND LEFT(EmployeeBirthdate, 4) = O.EmployeeBirthdate)> 0
私の理解では、エイリアスはまだ宣言されていないため、エイリアス (O.OriginalUserID = OriginalUserID、O.EmployeeBirthdate = EmployeeBirthdate、O.User_ID = User_ID) を使用して SET 内のデータを変更する方法がわかりません。エイリアスを宣言する部分をCTEでラップすることを検討しましたが、それはうまくいくかもしれないと考えていましたが、役に立ちませんでした。何を調査するかについての修正または提案は素晴らしいでしょう、ありがとう!