TYPEPROPERTY (Transact-SQL)

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

返回有关数据类型的信息。

Transact-SQL 语法约定

语法

TYPEPROPERTY (type , property)  

注意

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

自变量

type
数据类型的名称。

property
要为数据类型返回的信息类型。 property 可以是下列值之一

属性 说明 返回的值
AllowsNull 数据类型允许空值。 1 = True

0 = False

NULL = 找不到数据类型。
OwnerId 类型的所有者。

注意:架构所有者不一定是类型所有者。
Nonnull = 类型所有者的数据库用户 ID。

NULL = 不支持的类型,或类型 ID 无效。
精度 数据类型的精度。 数字位数或字符个数。

-1 = xml 或大值数据类型

NULL = 找不到数据类型。
缩放 数据类型的小数位数。 数据类型的小数位的个数。

NULL = 数据类型不是 numeric 或未找到
UsesAnsiTrim 创建数据类型时 ANSI 填充设置为 ON。 1 = True

0 = False

NULL = 数据类型找不到,或不是二进制数据类型或字符串数据类型。

返回类型

int

例外

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

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

示例

A. 标识数据类型的所有者

以下示例返回数据类型的所有者。

SELECT TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId') AS owner_id, name, system_type_id, user_type_id, schema_id  
FROM sys.types;  

B. 返回 tinyint 数据类型的精度

以下示例返回 tinyint 数据类型的精度或位数。

SELECT TYPEPROPERTY( 'tinyint', 'PRECISION');  

另请参阅

TYPE_ID (Transact-SQL)
TYPE_NAME (Transact-SQL)
COLUMNPROPERTY (Transact-SQL)
元数据函数 (Transact-SQL)
OBJECTPROPERTY (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sys.types (Transact-SQL)