您的位置:首页 > 数据库 > SQL

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

2010-04-19 23:25 447 查看
语法

SQL_VARIANT_PROPERTY ( expression , property )


参数
expression
类型为 sql_variant 的表达式。

property
包含将为其提供信息的 sql_variant 属性的名称。property 的数据类型为 varchar(128),可以是下列值之一。



说明
返回的 sql_variant 基本类型
BaseType
SQL Server 数据类型,例如:
bigint
binary
char
date
datetime
datetime2
datetimeoffset
decimal
float
int
money
nchar
numeric
nvarchar
real
smalldatetime
smallint
smallmoney
time
tinyint
uniqueidentifier
varbinary
varchar
sysname
NULL = 输入无效。
Precision
数值基本数据类型的位数:
datetime = 23
smalldatetime = 16
float = 53
real = 24
decimal (p,s) 和 numeric (p,s) = p
money = 19
smallmoney = 10
bigint = 19
int = 10
smallint = 5
tinyint = 3
bit = 1
所有其他类型 = 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

示例
以下示例检索有关 colA 值 46279.1 的 SQL_VARIANT_PROPERTY 信息,其中,colB = 1689,并假设 tableA 有类型为 sql_variant 和 colB 的 colA。


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') AS 'Base Type',
SQL_VARIANT_PROPERTY(colA,'Precision') AS 'Precision',
SQL_VARIANT_PROPERTY(colA,'Scale') AS 'Scale'
FROM tableA
WHERE colB = 1689


下面是结果集:请注意,这三个值中的每一个都是 sql_variant。


Base Type Precision Scale
--------- --------- -----
decimal 8 2

(1 row(s) affected)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐