あなたが取ることができるいくつかのオプションがあります、「最速」は本当にあなたのデータベースに依存します。
シードなどに関する質問に最初に答えるには-TRUNCATETABLEは、テーブル内のすべての情報を削除し(ログに記録されないため、非常に高速です)、ID列をリセットします。
例えば:
TRUNCATE TABLE dbo.table
http://msdn.microsoft.com/en-us/library/aa260621(SQL.80).aspx
ここでの重要な制限は、別のテーブルによって参照されているテーブルでは使用できないことです。この場合、標準の削除を使用してから、DBCCCHECKIDENTを使用できます。
例えば:
DELETE FROM dbo.table
GO
DBCC CHECKIDENT(dbo.table, reseed, 0)
http://msdn.microsoft.com/en-us/library/ms176057.aspx
情報を正しい順序で削除することを確認するために、削除を忘れないでください(つまり、外部キーを考慮に入れます)。
私がよく使用するもう1つのアプローチは、データベースをリセットするときに、完全なティアダウン/再構築スクリプトを作成することです。基本的な前提は、スクリプトの先頭ですべてのデータベースオブジェクトを破棄または削除してから、それらを再作成することです。これは必ずしもすべてのシナリオの解決策ではありませんが、基本的なタスクではうまく機能します。エラーを回避するために、私は通常、ドロップステートメントをIFステートメントに追加します。例:
IF EXISTS
(
SELECT *
FROM information_schema.tables
WHERE table_name = 'table' AND table_schema = 'dbo'
)
BEGIN
DROP TABLE dbo.table
END