别名表和更新......这段代码不应该失败吗?

时间:2014-10-13 19:13:43

标签: sql-server

一旦表别名,它需要由别名引用,对吗?

这会失败......

  

使用AdventureWorks;

     

SELECT TOP 10 Store.Name   FROM Store as st

......但是这次更新不会。

  

使用AdventureWorks;

     

更新商店
  SET Name = Name +'$ Test'

     

FROM Store as st

SQL Server在开始选择操作的优先顺序之前解析任何动作动词吗?

1 个答案:

答案 0 :(得分:4)

UPDATE Store
SET Name = Name + '$Test'
FROM Store as st

您正在引用两个表。您正在引用Store两次。

UPDATE Store
SET Name = Name + '$Test'
FROM sys.objects as st

也可以。这是正在更新的两个表的交叉产品。

通常,别名规则也适用于DML。