DROP TYPE (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

現在のデータベースから、別名データ型または共通言語ランタイム (CLR) ユーザー定義型を削除します。

Transact-SQL 構文表記規則

構文

DROP TYPE [ IF EXISTS ] [ schema_name. ] type_name [ ; ]  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

IF EXISTS
適用対象: SQL Server (SQL Server 2016 (13.x) から現在のバージョンまで)。

条件付きでは既に存在する場合にのみ、型を削除します。

schema_name
別名データ型またはユーザー定義型が属するスキーマの名前を指定します。

type_name
削除する別名データ型またはユーザー定義型の名前を指定します。

解説

次のいずれかに当てはまる場合には、DROP TYPE ステートメントは実行されません。

  • 別名データ型またはユーザー定義型の列を含むテーブルがデータベースにある場合。 別名型またはユーザー定義型の列の情報は、sys.columns カタログ ビューまたは sys.column_type_usages カタログ ビューをクエリすることによって取得できます。

  • 計算列、CHECK 制約、スキーマ バインド ビュー、およびスキーマ バインド関数の中には、別名型またはユーザー定義型への参照を含む定義を持つものもあります。 sys.sql_expression_dependencies カタログ ビューに対してクエリを実行することによって、これらの参照についての情報を取得できます。

  • データベースに関数、ストアド プロシージャ、またはトリガーが作成されていて、それらのルーチンが、削除しようとしている別名データ型またはユーザー定義型の変数やパラメーターを使用している場合。 別名型またはユーザー定義型のパラメーターについての情報は、sys.parameters カタログ ビューまたは sys.parameter_type_usages カタログ ビューに対するクエリを実行することによって取得できます。

アクセス許可

type_name に対する CONTROL 権限、または schema_name に対する ALTER 権限が必要です。

次の例では、ssn という名前の型が現在のデータベースに既に作成されていることを前提としています。

DROP TYPE ssn ;  

参照

CREATE TYPE (Transact-SQL)
EVENTDATA (Transact-SQL)