TYPE_NAME (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

返回指定类型 ID 的未限定的类型名称。

Transact-SQL 语法约定

语法

TYPE_NAME ( type_id )   

注意

若要查看 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)

下面的示例返回具有 1 ID 的数据类型的 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)