SQL Server データベースを完全に空にするスクリプトを作成しようとしています。 これまでのところ、次のスクリプトを作成しています。
USE [dbname]
GO
EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all'
EXEC sp_msforeachtable 'DELETE ?'
Management Studio で実行すると、次のようになります。
コマンドは正常に完了しました。
しかし、テーブル リストを更新すると、それらはすべてまだそこにあります。何が間違っているのでしょうか?
ベストアンサー1
MSSMS UI ツールのみを使用して (SQL スクリプトを使用せずに) データベースからすべてのテーブルを削除することもできます。この方法の方が快適な場合もあります (特に時々実行される場合)
これを次のように段階的に実行します。
- データベースツリー(オブジェクトエクスプローラー)で「テーブル」を選択します。
- F7 キーを押してオブジェクト エクスプローラーの詳細ビューを開きます。
- このビューで、削除する必要があるテーブルを選択します(この場合はすべて)
- すべてのテーブルが削除されるまで、Delete キーを押し続けます (キー制約/依存関係によるエラーの数だけ繰り返します)