データベースからすべての非システムテーブル/ procs/viewsを削除するスクリプトを持っている人はいますか?SQL Server 2008以外のすべてのシステムオブジェクトを削除するスクリプト
私はいくつかのビューを作成しました。私はそれらを個別にやり直す必要がありますが、扱いにくいです。
データベースからすべての非システムテーブル/ procs/viewsを削除するスクリプトを持っている人はいますか?SQL Server 2008以外のすべてのシステムオブジェクトを削除するスクリプト
私はいくつかのビューを作成しました。私はそれらを個別にやり直す必要がありますが、扱いにくいです。
あなたはいつも、システム・カタログ・ビューを照会し、それが必要なDROPステートメントを生成するかもしれない:
SELECT 'DROP PROCEDURE [' + SCHEMA_NAME(schema_id) + '].[' + pr.NAME +']'
FROM sys.procedures pr
WHERE pr.is_ms_shipped = 0
UNION
SELECT 'DROP VIEW [' + SCHEMA_NAME(schema_id) + '].[' + v.NAME + ']'
FROM sys.views v
WHERE v.is_ms_shipped = 0
UNION
SELECT 'ALTER TABLE [' + SCHEMA_NAME(schema_id) + '].[' + OBJECT_NAME(fk.parent_object_ID) + '] DROP CONSTRAINT ' + fk.name
FROM sys.foreign_keys fk
WHERE is_ms_shipped = 0
UNION
SELECT 'DROP TABLE [' + SCHEMA_NAME(schema_id) + '].[' + t.NAME + ']'
FROM sys.tables t
WHERE t.is_ms_shipped = 0
これはちょうど&が新しいSSMSにそれらをコピー&ペースト、DROP .....
文の長いリストを生成します。ウィンドウを開き、それらを実行します。
データベースを削除/再作成する方が簡単でしょうか?
DROP DATABASE yourdbname
CREATE DATABASE yourdbname
SQL Serverのドロップ/再作成の場合は+1が高速です。 Oracleデータベースの場合、私は時間のかかるスクリプトを実際に使用します。 –
あなたが誤ってマスタデータベースにテーブルを作成した場合を除いて:)私は元のポスターがこれを行ったかもしれないと推測しています。したがって、 "非システム"オブジェクトに関する質問です。 – Jedidja
テーブルを削除する前に、すべての外部キー制約を削除する必要があります(テーブルがランダムな順序で削除されるため)。 –
@Klaus Byskov Hoffmann:はい、良い点! –
残念ながら、スキーマ名は含まれません。 ['+ name +'] ' – Jedidja