DROP TABLE (Transact-SQL)

更新 : 2006 年 12 月 12 日

1 つ以上のテーブルの定義、およびそれらのテーブルのすべてのデータ、インデックス、トリガ、制約、権限の仕様を削除します。削除されたテーブルを参照しているすべてのビューとストアド プロシージャは、DROP VIEW および DROP PROCEDURE を使用して明示的に削除する必要があります。

構文

DROP TABLE [ database_name . [ schema_name ] . | schema_name . ]
        table_name [ ,...n ] [ ; ]

引数

  • database_name
    テーブルが作成されたデータベースの名前を指定します。
  • schema_name
    テーブルが属しているスキーマの名前を指定します。
  • table_name
    削除するテーブル名を指定します。

解説

DROP TABLE を使用して、FOREIGN KEY 制約によって参照されているテーブルを削除することはできません。まず、参照している FOREIGN KEY 制約または参照テーブルを削除する必要があります。参照しているテーブルと、主キーを格納しているテーブルの両方を同じ DROP TABLE ステートメントで削除する場合には、参照しているテーブルを先に指定する必要があります。

任意のデータベースから、複数のテーブルを削除することができます。削除するテーブルが、同時に削除される別のテーブルの主キーを参照している場合には、外部キーを持つ参照元のテーブルを、参照されている主キーを持つテーブルよりも前に指定する必要があります。

テーブルを削除すると、そのテーブルのルールや既定値はバインドを失い、そのテーブルに関係付けられている制約やトリガも自動的に削除されます。テーブルを再作成する場合は、適切なルールや既定値を再バインドし、トリガを再作成し、必要なすべての制約を追加する必要があります。

DELETE tablename や、TRUNCATE TABLE ステートメントを使用して、テーブルのすべての行を削除しても、そのテーブルは、テーブル自体を削除しない限り存在します。

128 個を超えるエクステントを使用する大きなテーブルやインデックスは、論理フェーズと物理フェーズの 2 段階で削除します。論理フェーズでは、そのテーブルが使用している既存のアロケーション ユニットに割り当て解除のマークが付き、トランザクションがコミットするまでロックされます。物理フェーズでは、割り当て解除のマークが付いた IAM ページが、バッチによって物理的に削除されます。詳細については、「ラージ オブジェクトの削除と再構築」を参照してください。

権限

テーブルが属するスキーマに対する ALTER 権限、テーブルに対する CONTROL 権限、または db_ddladmin 固定データベース ロールのメンバシップが必要です。

A. 現在のデータベース内のテーブルを削除する

次の例では、現在のデータベースから、ProductVendor1 テーブルとそのデータおよびインデックスを削除します。

DROP TABLE ProductVendor1 ;

B. 他のデータベースのテーブルを削除する

次の例では、AdventureWorks データベースにある SalesPerson2 テーブルを削除します。この例は、サーバー インスタンス上にあるどのデータベースからでも実行できます。

DROP TABLE AdventureWorks.dbo.SalesPerson2 ;

C. 一時テーブルを削除する

次の例では、一時テーブルを作成して、その存在テストを行います。さらに、このテーブルを削除して、再度存在テストを行います。

USE AdventureWorks;
GO
CREATE TABLE #temptable (col1 int);
GO
INSERT INTO #temptable
VALUES (10);
GO
SELECT * FROM #temptable;
GO
IF OBJECT_ID(N'tempdb..#temptable', N'U') IS NOT NULL 
DROP TABLE #temptable;
GO
--Test the drop.
SELECT * FROM #temptable;

参照

関連項目

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
DELETE (Transact-SQL)
sp_depends (Transact-SQL)
sp_help (Transact-SQL)
sp_spaceused (Transact-SQL)
TRUNCATE TABLE (Transact-SQL)
DROP VIEW (Transact-SQL)
DROP PROCEDURE (Transact-SQL)
EVENTDATA (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

変更内容 :
  • 「権限」に、テーブルが属するスキーマに対する ALTER 権限も DROP TABLE を実行するのに適切であることを追加しました。