テーブルの削除

新しいデザインを実装する場合、データベースの領域を解放する場合など、テーブルを削除する必要が生じることがあります。テーブルを削除すると、テーブルの構造定義、データ、フルテキスト インデックス、制約、およびインデックスがデータベースから完全に削除され、それまでテーブルとインデックスが格納されていた領域に他のテーブルを格納できるようになります。一時テーブルの場合は、テーブルが自動的に削除されるまで待たずに明示的に削除できます。

FOREIGN KEY 制約、UNIQUE 制約、または PRIMARY KEY 制約によって関連付けられているテーブルを削除する必要がある場合は、まず FOREIGN KEY 制約が定義されているテーブルを削除する必要があります。FOREIGN KEY 制約内で参照されているテーブルを削除する必要があるのに、外部キー テーブル全体を削除できない場合は、FOREIGN KEY 制約を削除する必要があります。

テーブル自体は削除せずにテーブル内のすべてのデータを削除したい場合は、データを切り捨てることができます。詳細については、「TRUNCATE TABLE の使用による全行削除」を参照してください。

SQL Server 2005 では、128 個を超えるエクステントを使用している大きなテーブルとインデックスを削除したり切り捨てたりすることができます。このときに、削除に必要なすべてのエクステントで同時ロックを保持する必要はありません。SQL Server 2005 データベース エンジン では、ラージ オブジェクトの削除を論理フェーズと物理フェーズの 2 つに分けて管理します。論理フェーズでは、テーブルで使用されている既存のアロケーション ユニットが割り当て解除用にマークされ、トランザクションのコミットが完了するまでロックされます。物理フェーズでは、割り当て解除用にマークされたアロケーション ユニットが、バッチで物理的に削除されます。詳細については、「ラージ オブジェクトの削除と再構築」を参照してください。

テーブルを削除するには

DROP TABLE (Transact-SQL)

FOREIGN KEY 制約を削除するには

ALTER TABLE (Transact-SQL)

テーブルを切り捨てるには

TRUNCATE TABLE (Transact-SQL)

参照

その他の技術情報

テーブルの作成と変更

ヘルプおよび情報

SQL Server 2005 の参考資料の入手