返回有关 sql_variant 值的基本数据类型和其它信息。
语法
SQL_VARIANT_PROPERTY ( expression, property )
参数
expression
是 sql_variant 类型的表达式。
property
包含将为其提供信息的 sql_variant 属性名称。property 是 varchar(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
money 和 smallmoney = 4
datetime = 3
所有其它类型 = 0
|
int
无效的输入 = NULL
|
| TotalBytes |
要包含值的元数据和数据所需的字节数。该信息在检查 sql_variant 列中数据的最大一侧时很有用。如果该值大于 900,索引创建将失败。 |
int
无效的输入 = NULL
|
| Collation |
代表特定 sql_variant 值的排序规则。 |
sysname
无效的输入 = NULL
|
| MaxLength |
最大数据类型长度(以字节为单位)。例如,nvarchar(50) 的 MaxLength 是 100,int 的 MaxLength 是 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。)
|