共用方式為


SQL_VARIANT_PROPERTY (Transact-SQL)

傳回基底資料類型和 sql_variant 值的其他相關資訊。

主題連結圖示Transact-SQL 語法慣例

語法

SQL_VARIANT_PROPERTY ( expression , property )

引數

expression

這是 sql_variant 類型的運算式。

property

包含提供的資訊所屬的 sql_variant 屬性名稱。propertyvarchar(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

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

範例

下列範例會擷取有關 colA46279.1SQL_VARIANT_PROPERTY 資訊,如果 tableAcolBsql_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)

請參閱

參考

sql_variant (Transact-SQL)

其他資源

使用 sql_variant 資料

說明及資訊

取得 SQL Server 2005 協助