TYPE_NAME (Transact-SQL)

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

主题链接图标Transact-SQL 语法约定

语法

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)