DROP SCHEMA (Transact-SQL)

データベースからスキーマを削除します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

DROP SCHEMA schema_name

引数

  • schema_name
    データベースで認識されるスキーマの名前を指定します。

解説

削除するスキーマは、オブジェクトが含まれていないスキーマであることが必要です。オブジェクトがスキーマに含まれている場合、DROP ステートメントは失敗します。

スキーマに関する情報は、sys.schemas カタログ ビューで確認できます。

ms186751.Caution(ja-jp,SQL.90).gif注意 :
SQL Server 2005 でのスキーマの動作は、以前のバージョンの SQL Server から変更されました。コードで、スキーマがデータベース ユーザーと同じであることが前提となっている場合、正しい結果が返されない場合があります。CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE USER、ALTER USER、DROP USER、CREATE ROLE、ALTER ROLE、DROP ROLE、CREATE APPROLE、ALTER APPROLE、DROP APPROLE、ALTER AUTHORIZATION のいずれかの DDL ステートメントが使用されたことのあるデータベースでは、sysobjects を含む以前のカタログ ビューを使用しないでください。このようなデータベースでは、新しいカタログ ビューを使用する必要があります。新しいカタログ ビューでは、SQL Server 2005 で導入されたプリンシパルとスキーマの分離が考慮されます。カタログ ビューの詳細については、「カタログ ビュー (Transact-SQL)」を参照してください。

権限

スキーマに対する CONTROL 権限、またはデータベースに対する ALTER ANY SCHEMA 権限が必要です。

次の例では、まず単一の CREATE SCHEMA ステートメントを実行し、Krishna が所有するスキーマ Sprockets を作成します。次にテーブル Sprockets.NineProngs を作成した後、Anibal に対して SELECT 権限を許可し、Hung-Fu に対して SELECT 権限を拒否します。

USE AdventureWorks;
GO
CREATE SCHEMA Sprockets AUTHORIZATION Krishna 
    CREATE TABLE NineProngs (source int, cost int, partnumber int)
    GRANT SELECT TO Anibal 
    DENY SELECT TO Hung-Fu;
GO

次のステートメントでは、このスキーマを削除します。先に、スキーマに含まれるテーブルを削除する必要があることに注意してください。

DROP TABLE Sprockets.NineProngs;
DROP SCHEMA Sprockets;
GO

参照

関連項目

CREATE SCHEMA (Transact-SQL)
ALTER SCHEMA (Transact-SQL)
DROP SCHEMA (Transact-SQL)
EVENTDATA (Transact-SQL)

その他の技術情報

ユーザーとスキーマの分離

ヘルプおよび情報

SQL Server 2005 の参考資料の入手