使用别名表更新SQL仍然返回“0”;“表格不明确”;错误
我正在尝试运行下面的更新,但遇到了“table is Dimensional”错误 表dbo.a包含数据,用于根据与同一表的关系以及不同列中的值更新cg中的值。它是一个自引用层次结构 正如你所看到的,所有的东西都有别名,所以我有点困惑为什么它不能运行使用别名表更新SQL仍然返回“0”;“表格不明确”;错误,sql,sql-update,table-alias,Sql,Sql Update,Table Alias,我正在尝试运行下面的更新,但遇到了“table is Dimensional”错误 表dbo.a包含数据,用于根据与同一表的关系以及不同列中的值更新cg中的值。它是一个自引用层次结构 正如你所看到的,所有的东西都有别名,所以我有点困惑为什么它不能运行 非常感谢您提供的任何帮助。在SQL Server中,您应该使用更新中的别名,而不是表中的别名。此外,您没有名为cg的别名。比如说: UPDATE cId SET column = gId.ID FROM dbo.a a INNER JOIN
非常感谢您提供的任何帮助。在SQL Server中,您应该使用
更新中的别名,而不是表中的别名。此外,您没有名为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];
不用担心,幸运地解决了它
我绝望地把桌子连在一起
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]
INNER JOIN cg ON cId.[a] = cg.[a];
如果有人能解释为什么这样做有效,我将非常感谢理解下面的MS SQL逻辑。SET cg.column=..
,那么,您的查询中有2个cg
表,这就是为什么即使我给另外两个表加了别名,您仍会收到该消息?我已经考虑过你会如何建议我给这个场景加上别名,甚至比我之前做的还要多。非常感谢戈登的回复。我已经试过了,我必须说,绕过这一点,但我感谢快速的反应。
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]
INNER JOIN cg ON cId.[a] = cg.[a];