Share via


TYPE_NAME (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

傳回指定類型識別碼的非限定類型名稱。

Transact-SQL 語法慣例

Syntax

TYPE_NAME ( type_id )   

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

引數

type_id
這是將使用的類型識別碼。 type_idint,它可以參考呼叫者有權存取之任何結構描述中的類型。

傳回型別

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)

下列範例會使用識別碼 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)