SQL UPDATE 和 FROM 子句。如何知道哪个 table 正在更新?

SQL UPDATE and FROM clause. How to know which table is being updated?

我正在研究 SQL UPDATE 命令的各种效果。

在阅读 MSDN official definition 时,他们在 UPDATE 和 FROM 子句

中提到了相同 table 的更新示例

即:

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

很明显,该示例是从 Sales.SalesPerson table 更新 SalesYTD,因为 FROM 子句中链接了相同的 table,但带有别名,sp.

这很简单,但是如果它没有别名怎么办?

即:

UPDATE Sales.SalesPerson
    SET SalesYTD = SalesYTD + SubTotal
    FROM Sales.SalesPerson
...

UPDATE 如何知道它正在更新 table(行)的哪个实例?我的问题是具体要知道table中的哪一个"instance"要更新,是UPDATE语句中提到的还是FROM子句中提到的?

如能对 MSDN 中的上述示例进行任何说明,我们将不胜感激。

谢谢

更新 原来的例子能不能这样写...?

UPDATE sp
SET sp.SalesYTD = sp.SalesYTD + SubTotal
FROM Sales.SalesPerson AS sp
...

SQL 总是更新 UPDATE 命令后指定的 table/alias。更新FROM子句中定义的别名时,只有1个table。相同的table被选中更新为