首頁 > 資料庫 > mysql教程 > 如何刪除具有級聯約束的 SQL Server 表?

如何刪除具有級聯約束的 SQL Server 表?

Barbara Streisand
發布: 2024-12-29 10:52:09
原創
385 人瀏覽過

How to Drop a SQL Server Table with Cascading Constraints?

SQL Server:使用級聯約束刪除表格

在Oracle 中,DROP TABLE 語句中的「CASCADE CONSTRAINTS PURGE」選項允許刪除表及其依賴約束和數據。

SQL 中的等效功能伺服器無法透過單一指令使用。但是,有兩種替代方法可以實現所需的結果:

使用腳本選項:

  1. 開啟 SQL Server Management Studio。
  2. 導覽至:工具 >選項> SQL Server 物件資源管理器>腳本編寫
  3. 啟用「為依賴物件產生腳本」複選框。
  4. 右鍵點選要刪除的表。
  5. 選擇「腳本 > 拖曳到 > 」新查詢視窗。 ”

這將產生一個包含所有依賴對象的腳本,並將它們放入正確的順序。

使用遞歸預存程序:

  1. 建立一個遞歸預存程序,刪除表格及其所有依賴物件。
CREATE PROC DropTableCascade (@TableName nvarchar(max))
AS
BEGIN
 IF OBJECT_ID(@TableName) IS NOT NULL
 BEGIN
  EXEC sp_MSForEachTable 'IF "{DB_NAME()}.dbo.' + name in (SELECT name FROM sysobjects WHERE type = ''U'' AND parent_id = OBJECT_ID(@TableName)) BEGIN PRINT ''Dropping table '' + ''{DB_NAME()}.dbo.'' + name PRINT ''DELETE FROM '' + ''{DB_NAME()}.dbo.'' + name + ''; DROP TABLE '' + ''{DB_NAME()}.dbo.'' + name + ''; END'
  DROP TABLE @TableName
 END
END
登入後複製
    致電包含要刪除的表名稱的預存程序:

以上是如何刪除具有級聯約束的 SQL Server 表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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