2010-07-05 12 views
6

Bu güncelleştirme ifadesi neden derlenmiyor? Msdn'ye göre bu kesinlikle doğru.'dbo.UserProperties' tablosu belirsizdir. Neden bu hata geliyor?

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)) 

cevap

10

Alias'ı kendiliğinden bir JOIN için GÜNCELLEŞTİRMEN'e başvurmanız gerekir. En azından ben kendi kendime JOIN ile bir UPDATE denedim ve şu tür bir sözdizimi benim için çalıştı.

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. Benim de düşüncelerim. –

İlgili konular