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
例
次の例では、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)