SQL_VARIANT_PROPERTY (Transact-SQL)
傳回基底資料類型和 sql_variant 值的其他相關資訊。
語法
SQL_VARIANT_PROPERTY ( expression , property )
引數
expression
這是 sql_variant 類型的運算式。
property
包含提供的資訊所屬的 sql_variant 屬性名稱。property 是 varchar(128),它可以是下列值之一。
值 | 描述 | 傳回的 sql_variant 的基底類型 |
---|---|---|
BaseType |
SQL Server 2005 資料類型,例如: bigint binary char decimal float int money nchar numeric nvarchar real smalldatetime smallint smallmoney 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 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
範例
下列範例會擷取有關 colA
值 46279.1
的 SQL_VARIANT_PROPERTY
資訊,如果 tableA
有 colB
和 sql_variant
類型的 colA
,則 colB
=1689
。
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)