2009-09-03 6 views

答えて

3

でリリースされますTRUNCATE TABLEを持ついくつかの制限があり、およびTRUNCATEを行うことができない場合、あなたは自由にあなたのクラスタ化インデックスを再構築することができます割り当てられたスペースを増やしてください。

  • はFOREIGN KEY 制約によって参照されています

    あなたはテーブルの上にTRUNCATE TABLEを使用することはできません。 ( が参照する外部キーを持つテーブル を切り捨てることができます)

  • インデックス付きビューに参加します。
  • トランザクション レプリケーションまたはマージレプリケーションを使用して発行されます。

テーブルにID列が含まれている場合、その列のカウンタはその列に定義されているシード値にリセットされます。シードが定義されていない場合、デフォルト値1が使用されます。アイデンティティ・カウンタを保持するには、代わりにDELETEを使用します。これが当てはまる場合は、IDの増分を元の位置に戻すためにテーブルを再配置する必要があります。

テーブルにクラスタ化インデックスがない場合は、DELETEステートメントでTABLOCKヒントを使用して、割り当てられた領域を解放することができます。

は、テーブルにクラスタ化インデックスを使用している場合は、スペースを解放するために、インデックスを再構築することができます(TABLOCK)

WITHテーブルFROM DELETE。

1

あなたは行うことができます。

truncate table [table_name] 

をして、SQL Server Expressのマネージャーで、右のデータベースをクリックしtasks->シュリンク>データベース/ファイル(両方を行う)に進みます。あなたをクリアする必要があります。

+1

私はファイルを縮小しません。それは500 GBのデータベースかもしれません、ちょうど3GBの予約で空の1つのテーブルを持つことが起こります。 – gbn

+0

..でもTRUNCATEは正しいです。 – gbn

+0

データベースを縮小する場合は、縮小によってcaesedされたフラグメンテーションのために、すべてのインデックスを再構築する必要があります。 –

1

これらはそうする必要があります、あなたのデータベースファイルを縮小します。テーブルが空の場合は表のために予約された空間には、次のコマンド

DBCC SHRINKDATABASE ('DBName') 
DBCC SHRINKFILE ('LogicalFileName') 
+0

データベースを縮小する場合は、縮小によってアタッチされたフラグメンテーションが原因で、すべてのインデックスを再構築する必要があります。 –

+0

あなたが正しいのは、あなたのインデックスはデータベースを縮小した後の混乱ですが、スペースを解放するというあなたの欲求が十分であり、得られたスペースが十分であれば、スペースを解放する唯一の方法です – Coentje

関連する問題