ホームページ > データベース > mysql チュートリアル > カスケード制約のある SQL Server テーブルを削除するには?

カスケード制約のある SQL Server テーブルを削除するには?

Barbara Streisand
リリース: 2024-12-29 10:52:09
オリジナル
395 人が閲覧しました

How to Drop a SQL Server Table with Cascading Constraints?

SQL Server: カスケード制約のあるテーブルの削除

Oracle では、DROP TABLE ステートメントの "CASCADE CONSTRAINTS PURGE" オプションにより、テーブルとその依存制約およびデータの削除。

同等のものSQL Server の機能は 1 つのコマンドでは利用できません。ただし、目的の結果を得るには、次の 2 つの代替方法があります。

スクリプト オプションの使用:

  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
ログイン後にコピー
  1. 削除するテーブルの名前を指定してストアド プロシージャを呼び出します:
EXEC DropTableCascade 'YourTableName'
ログイン後にコピー

以上がカスケード制約のある SQL Server テーブルを削除するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート