INFORMATION_SCHEMA.USER_DEFINED_TYPES ビューって何?
SQL Server データベースでユーザー定義型を一覧表示する方法
sys.table_types
システムカタログビューには、データベース内のすべてのユーザー定義型に関する情報が含まれています。このビューを使用して、次のクエリを実行することで、ユーザー定義型のリストを取得できます。
SELECT *
FROM sys.table_types;
このクエリは、次の列を含む結果セットを返します。
- name: ユーザー定義型の名前
- schema_id: ユーザー定義型のスキーマ ID
- user_type_id: ユーザー定義型の ID
- max_length: ユーザー定義型の最大長
- is_nullable: ユーザー定義型が NULL 許容かどうか
- is_user_defined: ユーザー定義型かどうか
- precision: ユーザー定義型の精度
- collation_name: ユーザー定義型の照合順序
SELECT *
FROM INFORMATION_SCHEMA.USER_DEFINED_TYPES;
このクエリは、sys.table_types
ビューによって返される列と同様の列を含む結果セットを返します。
sp_helpdatatype
システムストアドプロシージャを使用して、特定のユーザー定義型の詳細情報を表示できます。このストアドプロシージャを使用して、次のクエリを実行することで、ユーザー定義型のリストを取得できます。
EXEC sp_helpdatatype 'TypeName';
SSMS を使用する
SQL Server Management Studio (SSMS) を使用して、ユーザー定義型のリストを表示することもできます。SSMS でユーザー定義型のリストを表示するには、次の手順を実行します。
- SSMS を開き、データベースに接続します。
- オブジェクトエクスプローラーで、データベース > テーブル フォルダーを展開します。
- ユーザー定義データ型 フォルダーを右クリックし、新しいユーザー定義データ型 を選択します。
- 新しいユーザー定義データ型 ダイアログボックスで、名前 ボックスにユーザー定義型の名前を入力します。
- OK をクリックします。
SSMS は、データベース内のすべてのユーザー定義型のリストを表示します。
上記の方法のいずれかを使用して、SQL Server データベース内のユーザー定義型を一覧表示できます。どの方法を使用するかは、ニーズと好みによって異なります。
補足
- ユーザー定義型は、データベース内の複数のテーブルで使用できます。
- ユーザー定義型は、データベーススキーマの一部であるため、変更する前に慎重に検討する必要があります。
- ユーザー定義型を削除すると、そのユーザー定義型を使用しているテーブルからデータが失われる可能性があります。
sys.table_types システムカタログビューを使用する
SELECT *
FROM sys.table_types;
INFORMATION_SCHEMA.USER_DEFINED_TYPES ビューを使用する
SELECT *
FROM INFORMATION_SCHEMA.USER_DEFINED_TYPES;
sp_helpdatatype システムストアドプロシージャを使用する
EXEC sp_helpdatatype 'TypeName';
EXEC sp_helpdatatype 'Address';
SSMS を使用する
SSMS は、データベース内のすべてのユーザー定義型のリストを表示します。Address
という名前のユーザー定義データ型は、リストに含まれているはずです。
PowerShell を使用して、Get-SqlUserDefinedType
コマンドレットを実行することで、ユーザー定義型のリストを取得できます。
Get-SqlUserDefinedType
このコマンドレットは、次のプロパティを含むオブジェクトを返します。
- Database: ユーザー定義型を含むデータベースの名前
- IsSystem: ユーザー定義型がシステム型かどうか
- MaxSize: ユーザー定義型の最大サイズ
次の T-SQL スクリプトを使用して、ユーザー定義型のリストを取得できます。
DECLARE @sql NVARCHAR(MAX)
SET @sql = N'
SELECT
name,
schema_id,
user_type_id,
max_length,
is_nullable,
is_user_defined,
precision,
scale,
collation_name
FROM sys.table_types
ORDER BY name
'
EXEC sp_executesql @sql
このスクリプトは、sys.table_types
システムカタログビューをクエリし、ユーザー定義型のリストを返します。
サードパーティ製ツールを使用する
ApexSQL や Redgate SQL Prompt などのサードパーティ製ツールを使用して、ユーザー定義型のリストを表示することもできます。これらのツールは、ユーザー定義型の詳細情報を表示したり、ユーザー定義型を編集したり、削除したりする機能を提供します。
sql sql-server t-sql