SQL Server: カスケード制約のあるテーブルの削除
Oracle では、DROP TABLE ステートメントの "CASCADE CONSTRAINTS PURGE" オプションにより、テーブルとその依存制約およびデータの削除。
同等のものSQL Server の機能は 1 つのコマンドでは利用できません。ただし、目的の結果を得るには、次の 2 つの代替方法があります。
スクリプト オプションの使用:
これにより、すべての依存オブジェクトを含むスクリプトが生成され、それらがドロップされます。正しい順序です。
再帰ストアド プロシージャの使用:
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
EXEC DropTableCascade 'YourTableName'
以上がカスケード制約のある SQL Server テーブルを削除するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。