1

MDFファイルからスキーマとデータをクリアするために必要なオプションは何ですか?すべてのデータを削除するためのオプションは何ですか?

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

すべてのデータをクリアするには、スクリプトを作成する必要があるようです。スクリプトは制約を無効にし、制約をオンに戻す前に各テーブルからすべての行を削除します。これは簡単ですが、データベースに存在するテーブルを検出/追跡する必要があります。多分それは十分ではないか、より簡単なアプローチがありますか?

4

1 に答える 1

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 ?'
于 2011-02-04T02:17:35.870 に答える