2010-07-05 24 views
6

Tại sao bản cập nhật này không được biên dịch? Theo msdn nó là hoàn toàn đúng.Bảng 'dbo.UserProperties' không rõ ràng. Tại sao lỗi này lại đến?

UPDATE dbo.UserProperties 
    SET  Value = MergeFrom.Value 
FROM dbo.UserProperties MergeFrom , 
     dbo.UserProperties MergeTo 
WHERE MergeFrom.Field = MergeTo.Field 
     AND MergeTo.[Key] = CAST(@MergeToUserID AS NVARCHAR(50)) 
     AND MergeFrom.[Key] = CAST(@MergeFromUserID AS NVARCHAR(50)) 

Trả lời

10

Tôi nghĩ bạn cần tham khảo Bí danh trong UPDATE để tự THAM GIA. Ít nhất tôi chỉ thử một UPDATE với một JOIN tự và loại cú pháp sau đây đã làm việc cho tôi.

UPDATE MergeTo 
    SET MergeTo.Value = MergeFrom.Value 
FROM dbo.UserProperties AS MergeFrom INNER JOIN 
      dbo.UserProperties AS MergeTo ON MergeFrom.Field = MergeTo.Field 
WHERE MergeTo.[Key] = CAST(@MergeToUserID AS NVARCHAR(50)) 
         AND MergeFrom.[Key] = CAST(@MergeFromUserID AS NVARCHAR(50)) 
+0

@ + 1: Yep. Suy nghĩ của tôi nữa. –

Các vấn đề liên quan