TYPE_NAME (Transact-SQL)
返回指定类型 ID 的未限定的类型名称。
语法
TYPE_NAME ( type_id )
参数
- type_id
要使用的类型的 ID。type_id 的数据类型为 int,它可以引用调用方有权访问的任意架构中的类型。
返回类型
sysname
异常
出现错误时或调用方没有查看对象的权限时,将返回 NULL。
在 SQL Server 中,用户只能查看其拥有的安全对象的元数据,或者已对其授予权限的安全对象的元数据。也就是说,如果用户对该对象没有任何权限,则某些会产生元数据的内置函数(如 TYPE_NAME)可能返回 NULL。有关详细信息,请参阅元数据可见性配置和元数据可见性故障排除。
注释
当 type_id 无效或当调用方没有足够权限引用类型时,TYPE_NAME 将返回 NULL。
TYPE_NAME 既可用于系统数据类型,也可用于用户定义数据类型。类型可以包含在任意架构中,但是始终返回一个未限定的类型名称。这表示名称不具有 schema**.** 前缀。
系统函数可以在选择列表、WHERE 子句和任何允许使用表达式的地方使用。有关详细信息,请参阅表达式(Transact-SQL)和 WHERE (Transact-SQL)。
示例
以下示例针对 AdventureWorks 数据库的 Vendor 表中的每列返回对象名称、列名以及类型名称。
USE AdventureWorks;
GO
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 CreditRating tinyint
Vendor ModifiedDate datetime
Vendor Name Name
Vendor PreferredVendorStatus Flag
Vendor PurchasingWebServiceURL nvarchar
Vendor VendorID int
(8 row(s) affected)