使用 Join 刪除

聯接也可以在 DELETE 語句中使用。給出如下架構:

CREATE TABLE Users (
    UserId int NOT NULL,
    AccountId int NOT NULL,
    RealName nvarchar(200) NOT NULL
)

CREATE TABLE Preferences (
    UserId int NOT NULL,
    SomeSetting bit NOT NULL
)

我們可以從 Preferences 表中刪除行,按 Users 表中的謂詞進行過濾,如下所示:

DELETE p
FROM Users u
INNER JOIN Preferences p ON u.UserId = p.UserId
WHERE u.AccountId = 1234

這裡 p 是語句的 FROM 子句中定義的 Preferences 的別名,我們只刪除 Users 表中匹配 AccountId 的行。