TYPEPROPERTY (Transact-SQL)

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

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

语法

TYPEPROPERTY (type , property)

参数

  • type
    数据类型的名称。

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

    属性

    说明

    返回的值

    AllowsNull

    数据类型允许空值。

    1 = True

    0 = False

    NULL = 找不到数据类型。

    OwnerId

    类型的所有者。

    注意注意
    架构所有者不一定是类型所有者。

    Nonnull = 类型所有者的数据库用户 ID。

    NULL = 不支持的类型,或类型 ID 无效。

    Precision

    数据类型的精度。

    数字位数或字符个数。

    -1 = xml 或较大值数据类型

    NULL = 找不到数据类型。

    Scale

    数据类型的小数位数。

    数据类型的小数位的个数。

    NULL = 数据类型不是 numeric 或找不到。

    UsesAnsiTrim

    创建数据类型时 ANSI 填充设置为 ON。

    1 = True

    0 = False

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

返回类型

int

异常

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

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

示例

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');