使用别名表更新SQL仍会返回"表格不明确"错误

K7B*_*uoy 3 sql table-alias sql-update

我试图运行以下更新,但运行到"表是模糊的"错误.

UPDATE dbo.cg
SET cg.column = gId.ID
FROM    dbo.a
        INNER JOIN dbo.cg as cId ON cId.[a] = dbo.a.[c]
        INNER JOIN dbo.cg as gId ON gId.[a] = dbo.a.[b];
Run Code Online (Sandbox Code Playgroud)

表dbo.a包含用于根据与同一表的关系更新cg中的值与不同列中的值的数据.它是一个自引用层次结构.

正如你所看到的,一切都是别名的,所以我有点困惑为什么这不会运行.

非常感谢您提供的任何帮助.

Gor*_*off 10

在SQL Server中,你应该使用别名的update,不表.此外,您没有调用别名cg.所以像这样:

UPDATE cId
SET column = gId.ID
FROM dbo.a a INNER JOIN
     dbo.cg cId
     ON cId.[a] = a.[c] INNER JOIN
     dbo.cg gId
     ON gId.[a] = a.[b];
Run Code Online (Sandbox Code Playgroud)