2011-02-04 9 views
1

WhatsオプションMDFファイルからスキーマとデータをクリアする必要がありますか?すべてのデータを削除するにはどのようなオプションがありますか?SQL Expressのデータベースベースファイル(.MDF)を使用すると、スキーマやデータを消去/消去/リセットする方法はありますか?

データベーススキーマをリセットするには、ファイルが空のときにデータベースのバックアップからファイルをコピーする必要があるようです。私は、より簡単で効率的な方法があるのか​​疑問に思っていました。

すべてのデータを消去するには、スクリプトを書く必要があるようです。スクリプトは制約を無効にし、制約を元に戻す前に各テーブルのすべての行を削除します。これは簡単ですが、データベース内にどのテーブルが存在するかを発見/追跡する必要があります。多分それは十分でないか、より簡単なアプローチがありますか?

答えて

2

「スキーマをクリアする」のポイントがわかりません - 確かに新しいデータベースには既に「クリア」スキーマがあります。しかし、次のT-SQL経由で新しいデータベースをコードで作成することができます:

USE Master 
CREATE DATABASE NewDb (NAME=NewDbFile, FILENAME= '<filepath>') 

ファイル(MDF)を必要とする場合は、その後sp_detach_dbであまりにもデータベースをデタッチすることができ、必要に応じて、あなたはその後、上記の指定された場所から移動することができます。データを消去するには

EXEC sp_detach_db NewDb 

sp_msforeachtableを切り捨てコマンドとともに使用することができます。これはログに記録されない操作ですが、制約や外部キーもチェックしませんが、にロールバックできません!

EXEC sp_msforeachtable 'TRUNCATE TABLE ?' 
+0

新しいデータベースが優れています。私はプログラムでこれを行う必要があります。 C#、SQL、PowerShellなどのUI以外の手段でMDFファイルを作成できますか? –

+0

@Frank Schwieterman - SQLでデータベースを作成することもできます - これはどういう意味ですか?私はスーツに答えを変更することができます.. –

+0

おかげで私はあなたの助けを必要としたようにこれを得ることができました。 –

関連する問題