SQL Serverで相互に関係するテーブルのグループを削除する簡単な方法はありますか?理想的には、グループ全体がプロセスの終わりまでに終了することを知っているので、彼らがどの順序でドロップされているか心配する必要はありません。SQL Serverでテーブルのグループを削除する
答えて
愚かな音が出る危険がありますが、SQL Serverが削除/カスケード構文をサポートしているとは思われません。私はカスケード削除(http://msdn.microsoft.com/en-us/library/ms152507.aspx)を行う削除ルールを設定することができると思うが、私が知っている限り、SQL Serverのトリックはドロップする各テーブルに対して一度だけドロップクエリを実行することです。これは、あなたがDatabase Journalで見つけることができますsp___drop___constraintsスクリプトが必要です
私はこれをテストするために、SQL Serverへのアクセスを持っていますが、方法についてはありません:
DROP TABLE IF EXISTS table1, table2, table3 CASCADE;
デレクのアプローチが動作するかどうか、私は、よく分かりません。あなたはまだそれを最良の答えとしてマークしていません。
もしそうでなければ:SQL Server 2005ではそれは可能でしょう。
彼らは例外(私はまだ使用していない)を導入しました。だから、テーブルをドロップし、例外が発生した場合はそれをキャッチし、次のテーブルがすべて消えるまで試してみてください。
テンポラリテーブルにテーブルのリストを格納しておきたい場合は、テンポラリテーブルをトラバースするためにカーソルを使用できます。
SQL Server内でのみ機能するソリューションはかなりシンプルになりますが、私はApacheのddlutilsを使用して終了しました。
@Derek Park、私はそこにコンマを置くことができないことを知っていたので、それは便利ですが、期待通りには動作しません。ダミーのIF EXISTSもCASCADEもSQL Serverに認識されているようですが、drop table X, Y, Z
は、指定された順序で削除する必要がある場合にのみ動作します。
また、ドロップテーブルの構文について説明しているhttp://msdn.microsoft.com/en-us/library/ms173790.aspxも参照してください。
テーブルを任意の順序で削除しないようにするのは、テーブル間の外部キーの依存関係です。だから始める前にFKを取り除く。 INFORMATION_SCHEMAシステムビューを使用する
- 、すべての外部キーのリストを取得し、これらの表のいずれかに関連
- ドロップは、これらの外部キー
- のそれぞれ今、あなたが使用して、テーブルのすべてをドロップすることができるはずですあなたが望む任意の順序。
異なるアプローチがあります。最初に制約を取り除き、次に単一のショットでテーブルを削除します。
つまり、すべての制約に対してDROP CONSTRAINTを、次に各テーブルにDROP TABLEを指定します。この時点で実行の順序は問題ではありません。
: - 明らかに - この
sp_MSforeachtable @command1="print 'disabling constraints: ?'", @command2="sp_drop_constraints @tablename=?"
GO
sp_MSforeachtable @command1="print 'dropping: ?'", @command2="DROP TABLE ?"
GO
NOTEをあなたはとても気をつけて、データベース内のすべての表をドロップすることを意図している場合
- 1. SQL Server - グループ内でNULLを含む結果を削除する
- 2. SQL Server 2008のテーブルの階層削除
- 3. SQL SERVERのテーブルのグループ化
- 4. テーブルから複数のスペースを削除するSQL Serverで
- 5. SQL Serverの__RefactorLogテーブル - 削除するのに安全ですか?
- 6. トリガーを作成する方法[テーブル] MS SQL Serverで削除
- 7. SQL Server 2012でテーブルのユーザー定義インデックスを削除します
- 8. SQL Serverテーブルから重複する行を削除する
- 9. SQL Serverでグローバルテンポラリテーブル(## tempTable)を削除する
- 10. SQL Serverデータベース内のすべてのテーブルを削除します。
- 11. SQL Serverテーブルからデータをバッチ削除する
- 12. SQL Serverのグループに基づいて削除
- 13. SQL Serverの外部キーと参照テーブルを削除します
- 14. SQL Serverの削除のジレンマ
- 15. SQL Server Management Studioでテーブルを削除しました。
- 16. SQL Serverテーブルの除外
- 17. の削除SQL ServerデータベースC#
- 18. 削除時のSQL Serverカスケード
- 19. SQL Server 2014インスタンスの削除
- 20. SQL Serverインスタンスの削除
- 21. AzureデータストレージパイプラインでSQLテーブルを削除する
- 22. SQL Serverテーブルの外部キーを使用したデータの削除
- 23. 2つのテーブルを含むSQL Serverの削除クエリ
- 24. SQL Server - テーブル結合時のグループ連結
- 25. SQL Server FileTable:ファイルを削除する
- 26. Sql Server 2008 - シノニムを削除する
- 27. SQL Serverデータベースを削除する
- 28. SQL Serverからオブジェクトを削除する
- 29. インデックスを削除するSQL Server 2000
- 30. 2つのテーブルとの差分を取得し、SQL Serverで削除する