表'dbo.UserProperties'不明确.为什么会出现这个错误?

tee*_*nup 6 sql sql-server

为什么这个更新语句没有被编译?根据msdn,这是完全正确的.

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))
Run Code Online (Sandbox Code Playgroud)

Mar*_*ith 10

我认为你需要在UPDATE中引用Alias来进行自我加入.至少我刚尝试了一个带有自我JOIN的UPDATE,并且以下类型的语法对我有效.

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))
Run Code Online (Sandbox Code Playgroud)