Transact-SQL 参考

SQL_VARIANT_PROPERTY

返回有关 sql_variant 值的基本数据类型和其它信息。

语法

SQL_VARIANT_PROPERTY ( expression, property )

参数

expression

sql_variant 类型的表达式。

property

包含将为其提供信息的 sql_variant 属性名称。propertyvarchar(128),可以是下列任何值。

描述 返回的 sql_variant 基本类型
BaseType SQL Server 数据类型,如:

char
int

money
nchar
ntext
numeric
nvarchar
real
smalldatetime
smallint
smallmoney
text
timestamp
tinyint
uniqueidentifier
varbinary
varchar

sysname

无效的输入 = NULL

Precision 数字基本数据类型的位数:

datetime = 23
smalldatetime = 16
float = 53
real = 24
decimal (p,s) and numeric (p,s) = p
money = 19
smallmoney = 10
int = 10
smallint = 5
tinyint = 3
bit = 1
all other types = 0

int

无效的输入 = NULL

Scale 数字基本数据类型小数点右边的位数:

decimal (p,s) 和 numeric (p,s) = s
moneysmallmoney = 4
datetime = 3
所有其它类型 = 0

int

无效的输入 = NULL

TotalBytes 要包含值的元数据和数据所需的字节数。该信息在检查 sql_variant 列中数据的最大一侧时很有用。如果该值大于 900,索引创建将失败。 int

无效的输入 = NULL

Collation 代表特定 sql_variant 值的排序规则。 sysname

无效的输入 = NULL

MaxLength 最大数据类型长度(以字节为单位)。例如,nvarchar(50)MaxLength 是 100,intMaxLength 是 4。 int

无效的输入 = NULL


返回类型

sql_variant

示例

下例假定 tableA 包含 colB 和属于 sql_variant 类型的 colA,检索有关值为 46279.1 的 colA(其中 colB =1689)的 SQL_VARIANT_PROPERTY 信息。

CREATE   TABLE tableA(colA sql_variant, colB int)
INSERT INTO tableA values ( cast (46279.1 as decimal(8,2)), 1689)
SELECT   SQL_VARIANT_PROPERTY(colA,'BaseType'),
         SQL_VARIANT_PROPERTY(colA,'Precision'),
         SQL_VARIANT_PROPERTY(colA,'Scale')
FROM      tableA
WHERE      colB = 1689

下面是结果集。(注意这三个值每个都是 sql_variant。)

decimal 8 2

请参见

sql_variant

使用 sql_variant 数据