TYPE_ID (Transact-SQL)

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

返回指定数据类型名称的 ID。

Transact-SQL 语法约定

语法

TYPE_ID ( [ schema_name ] type_name )   

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

type_name
数据类型的名称。 type_name 的数据类型为 nvarchar。 type_name 可以是系统数据类型或用户定义的数据类型

返回类型

int

例外

出现错误时或调用方没有查看对象的权限时,将返回 NULL。

在 SQL Server 中,用户只能查看其拥有的安全对象的元数据,或者已对其授予权限的安全对象的元数据。 也就是说,如果用户对该对象没有任何权限,则那些会生成元数据的内置函数(如 TYPE_ID)可能返回 NULL。 有关详细信息,请参阅 Metadata Visibility Configuration

注解

如果类型名称无效,或调用方没有足够权限来引用类型,则 TYPE_ID 返回 NULL。

示例

A. 查找由一部分构成的和由两部分构成的类型名称的 TYPE ID 值

下面的示例返回由一部分构成的和由两部分构成的类型名称的类型 ID。

USE tempdb;  
GO  
CREATE TYPE NewType FROM int;  
GO  
CREATE SCHEMA NewSchema;  
GO  
CREATE TYPE NewSchema.NewType FROM int;  
GO  
SELECT TYPE_ID('NewType') AS [1 Part Data Type ID],  
       TYPE_ID('NewSchema.NewType') AS [2 Part Data Type ID];  
GO  

B. 查找系统数据类型的 TYPE ID

下面的示例返回 TYPE ID 系统数据类型的 datetime

SELECT TYPE_NAME(TYPE_ID('datetime')) AS [TYPE_NAME]  
    ,TYPE_ID('datetime') AS [TYPE_ID];  
GO  

示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)

C. 查找系统数据类型的 TYPE ID

下面的示例返回 TYPE ID 系统数据类型的 datetime

SELECT TYPE_NAME(TYPE_ID('datetime')) AS typeName,   
    TYPE_ID('datetime') AS typeID FROM table1;  

另请参阅

TYPE_NAME (Transact-SQL)
TYPEPROPERTY (Transact-SQL)
sys.types (Transact-SQL)
元数据函数 (Transact-SQL)