SQL Server:使用級聯約束刪除表格
在Oracle 中,DROP TABLE 語句中的「CASCADE CONSTRAINTS PURGE」選項允許刪除表及其依賴約束和數據。
SQL 中的等效功能伺服器無法透過單一指令使用。但是,有兩種替代方法可以實現所需的結果:
使用腳本選項:
這將產生一個包含所有依賴對象的腳本,並將它們放入正確的順序。
使用遞歸預存程序:
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中文網其他相關文章!