首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

跟我學 MS SQL Server - 7:從子表刪除資料的子查詢技巧

     編輯:關於SqlServer

需依據其他表格條件刪除子表資料時,可善用符合 SQL-92 的子查詢。以寵物店資料庫為例:

基本刪除語法

DELETE FROM inventory
WHERE breed_id IN (SELECT breed_id FROM breed WHERE breed_name = 'Shitzu');

先指定目標表,再以子查詢結果比對識別欄位。執行前建議先用 SELECT * 驗證將被刪除的資料列。

DELETE 與 JOIN 結合?

雖 SQL Server 文件宣稱支援,但實測多平台均不支援 DELETE ... JOIN,且不符 SQL-92 標準,不建議使用。

一次從多個子表刪除

SQL-92 無標準語法支援單一陳述式刪除多表。替代方案:

  • 增加 IsActive 標記欄位,邏輯刪除替代物理刪除。
  • 使用預存程序逐表執行刪除。

警示

DELETE 會永久移除整列資料,務必在測試環境驗證後再套用至生產環境。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved