我正在研究SQL UPDATE命令的各种效果。
在阅读MSDN official definition时,他们提到了UPDATE和FROM子句中同一个表的UPDATE示例
即:
USE AdventureWorks;
GO
UPDATE Sales.SalesPerson
SET SalesYTD = SalesYTD + SubTotal
FROM Sales.SalesPerson AS sp
JOIN Sales.SalesOrderHeader AS so
ON sp.SalesPersonID = so.SalesPersonID
AND so.OrderDate = (SELECT MAX(OrderDate)
FROM Sales.SalesOrderHeader
WHERE SalesPersonID =
sp.SalesPersonID);
GO
很明显,该示例是从SalesYTD
表更新Sales.SalesPerson
,因为同一个表在FROM
子句中链接但是与ALIAS {{1}相关联}。
这很简单,但如果它没有别名怎么办?
即:
sp
UPDATE如何知道它更新的表(行)的哪个实例?我的问题是专门知道哪个"实例"要更新的表,UPDATE语句中提到的表还是FROM子句中提到的表?
对于MSDN上述示例的任何澄清将不胜感激。
由于
更新 这样的原始例子是否已经写好了??
UPDATE Sales.SalesPerson
SET SalesYTD = SalesYTD + SubTotal
FROM Sales.SalesPerson
...
答案 0 :(得分:1)
SQL始终更新UPDATE命令后指定的表/别名。更新FROM子句中定义的别名时,只有一个表。从
中选择并更新相同的表格