共用方式為


在子查詢中限定資料行名稱

在下例中,外部查詢之 WHERE 子句的 CustomerID 資料行會被外部查詢之 FROM 子句中的資料表名稱 Sales.Store 隱含限定。子查詢的選取清單對於 CustomerID 的參考會被子查詢的 FROM 子句限定,也就是被 Sales.Customer 資料表限定。

USE AdventureWorks2008R2;
GO
SELECT Name
FROM Sales.Store
WHERE BusinessEntityID NOT IN
    (SELECT CustomerID
     FROM Sales.Customer
     WHERE TerritoryID = 5)

一般規則是由相同層級之 FROM 子句所參考的資料表隱含限定陳述式的資料行名稱。如果資料行不在子查詢之 FROM 子句參考的資料表中,則會被外部查詢之 FROM 子句中所參考的資料表隱含限定。

以下為這些隱含假設下的查詢樣本:

USE AdventureWorks2008R2;
GO
SELECT Name
FROM Sales.Store
WHERE Sales.Store.BusinessEntityID NOT IN
    (SELECT Sales.Customer.CustomerID
     FROM Sales.Customer
     WHERE TerritoryID = 5)

以外顯方式來敘述資料表名稱絕對不會錯,而且一定可以使用外顯的限定來覆寫隱含假設的資料表名稱。

警告注意事項注意

如果在子查詢中參考的資料行不在子查詢之 FROM 子句所參考的資料表中,但是在外部查詢之 FROM 子句所參考的資料表中,則可執行查詢而不會發生錯誤。SQL Server 是以外部查詢中的資料表名稱隱含限定子查詢中的資料行。