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 のデータ型です。
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
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
使用例
次の例では、colB =1689 の colA 値 46279.1 に関する SQL_VARIANT_PROPERTY 情報を取得しています。tableA には sql_variant 型の colA と、colB が含まれているものとします。
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
以下に結果セットを示します。値は 3 つとも sql_variant です。
Base Type Precision Scale
--------- --------- -----
decimal 8 2
(1 row(s) affected)