首頁 > 資料庫 > mysql教程 > 如何使用 INNER JOIN 從 SQL Server 中的多個表中刪除?

如何使用 INNER JOIN 從 SQL Server 中的多個表中刪除?

Mary-Kate Olsen
發布: 2025-01-07 06:51:43
原創
999 人瀏覽過

How to Delete from Multiple Tables in SQL Server Using INNER JOIN?

在SQL Server 中使用INNER JOIN 刪除多個表格

與MySQL 不同,SQL Server 不支援使用下列語法從多個資料表中刪除內連接。但是,還有其他方法可以實現相同的結果。

使用「已刪除」偽表

考慮以下程式碼範例:

begin transaction;

declare @deletedIds table ( id int );

delete from t1
output deleted.id into @deletedIds
from table1 as t1
    inner join table2 as t2
        on t2.id = t1.id
    inner join table3 as t3
        on t3.id = t2.id;

delete from t2
from table2 as t2
    inner join @deletedIds as d
        on d.id = t2.id;

delete from t3
from table3 as t3 ...

commit transaction;
登入後複製

此程式碼利用「deleted」偽表來儲存第一個刪除語句中刪除的ID。然後,這些 ID 將在後續刪除語句中用於從其他表中刪除對應的行。

其他注意事項

  • 您也可以使用「輸出已刪除」。如果需要與第三個表連接,則在第二個刪除語句中。
  • 考慮在父表(例如,table1)上使用觸發器,以在適當的時候自動從子表(例如,table2 和 table3)中刪除行。這種方法提供了一種方便有效的方法來維護多個表之間的資料完整性。

以上是如何使用 INNER JOIN 從 SQL Server 中的多個表中刪除?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板