返回有關(guān) sql_variant 值的基本數(shù)據(jù)類型和其它信息。
SQL_VARIANT_PROPERTY ( expression, property )
expression
是 sql_variant 類型的表達(dá)式。
property
包含將為其提供信息的 sql_variant 屬性名稱。property 是 varchar(128),可以是下列任何值。
值 | 描述 | 返回的 sql_variant 基本類型 |
---|---|---|
BaseType | SQL Server 數(shù)據(jù)類型,如: char | sysname 無效的輸入 = NULL |
Precision | 數(shù)字基本數(shù)據(jù)類型的位數(shù): datetime = 23 | int 無效的輸入 = NULL |
Scale | 數(shù)字基本數(shù)據(jù)類型小數(shù)點(diǎn)右邊的位數(shù): decimal (p,s) 和 numeric (p,s) = s | int 無效的輸入 = NULL |
TotalBytes | 要包含值的元數(shù)據(jù)和數(shù)據(jù)所需的字節(jié)數(shù)。該信息在檢查 sql_variant 列中數(shù)據(jù)的最大一側(cè)時(shí)很有用。如果該值大于 900,索引創(chuàng)建將失敗。 | int 無效的輸入 = NULL |
Collation | 代表特定 sql_variant 值的排序規(guī)則。 | sysname 無效的輸入 = NULL |
MaxLength | 最大數(shù)據(jù)類型長(zhǎng)度(以字節(jié)為單位)。例如,nvarchar(50) 的 MaxLength 是 100,int 的 MaxLength 是 4。 | int 無效的輸入 = NULL |
sql_variant
下例假定 tableA 包含 colB 和屬于 sql_variant 類型的 colA,檢索有關(guān)值為 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
下面是結(jié)果集。(注意這三個(gè)值每個(gè)都是 sql_variant。)
decimal | 8 | 2 |