TYPE_NAME (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
指定した型の ID について、修飾なしの名前を返します。
構文
TYPE_NAME ( type_id )
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
引数
type_id
使用する型の ID です。 type_id のデータ型は int です。呼び出し元がアクセス権を所有しているスキーマの型を参照できます。
戻り値の型
sysname
例外
エラーが発生した場合、または呼び出し元にオブジェクトの表示権限がない場合は、NULL が返されます。
SQL Server では、そのユーザーが所有している、または権限を与えられている、セキュリティ保護可能なアイテムのメタデータのみを表示できます。 つまり、ユーザーがオブジェクトに対する権限を与えられていない場合、メタデータを生成する TYPE_NAME などの組み込み関数では NULL が返される可能性があります。 詳細については、「 Metadata Visibility Configuration」を参照してください。
解説
type_id が無効であるか、呼び出し元が型の参照に必要な権限を所有していない場合、TYPE_NAME では NULL が返されます。
TYPE_NAME は、システム データ型と、ユーザー定義データ型にも使用できます。 型が含まれるスキーマはあらゆるスキーマが対象になりますが、常に修飾なしの名前が返されます。 つまり、名前に schema. プレフィックスは含まれません。
システム関数は、選択リストの中、WHERE 句の中、また、式を使える所ならどこにでも使用できます。 詳しくは、「式 (Transact-SQL)」および「WHERE (Transact-SQL)」をご覧ください。
例
次の例では、AdventureWorks2022
データベースの Vendor
テーブルにある各列の、オブジェクト名、列名、型名を返します。
SELECT o.name AS obj_name, c.name AS col_name,
TYPE_NAME(c.user_type_id) AS type_name
FROM sys.objects AS o
JOIN sys.columns AS c ON o.object_id = c.object_id
WHERE o.name = 'Vendor'
ORDER BY col_name;
GO
結果セットは次のようになります。
obj_name col_name type_name
--------------- ------------------------ --------------
Vendor AccountNumber AccountNumber
Vendor ActiveFlag Flag
Vendor BusinessEntityID int
Vendor CreditRating tinyint
Vendor ModifiedDate datetime
Vendor Name Name
Vendor PreferredVendorStatus Flag
Vendor PurchasingWebServiceURL nvarchar
(8 row(s) affected)
例: Azure Synapse Analytics、Analytics Platform System (PDW)
次の例では、ID が 1
のデータ型の TYPE ID
が返されます。
SELECT TYPE_NAME(36) AS Type36, TYPE_NAME(239) AS Type239;
GO
型のリストの場合は、sys.types のクエリを行います。
SELECT * FROM sys.types;
GO
参照
TYPE_ID (Transact-SQL)
TYPEPROPERTY (Transact-SQL)
sys.types (Transact-SQL)
メタデータ関数 (Transact-SQL)