対象者:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
アナリティクスプラットフォームシステム(PDW)
Microsoft FabricにおけるSQLデータベース
sql_variant 値の基本データ型およびその他の情報を返します。
Syntax
SQL_VARIANT_PROPERTY ( expression , property )
Note
この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。
Arguments
expression
sql_variant 型の式です。
property
情報を提供する sql_variant プロパティの名前です。
property は varchar( 128 ) であり、次のいずれかの値を指定できます。
| Value | Description | 返される sql_variant の基本データ型 |
|---|---|---|
| BaseType | 以下のような SQL Server のデータ型です。 bigint binary bit char date datetime datetime2 datetimeoffset decimal float int money nchar numeric nvarchar real smalldatetime smallint smallmoney time tinyint uniqueidentifier varbinary varchar |
sysname NULL = 入力は無効です。 |
| Precision | 数値基本データ型の桁数です。 日付 = 10 日付 = 23 datetime2 = 27 datetime2 (s) = 19 when s = 0、それ以外の場合 s + 20 Datetimeoffset = 34 DateTimeoffset (s) = 26 の場合は s = 0、そうでなければ s + 27 smalldatetime = 16 時間 = 16 time (s) = 8 (s = 0 の場合)、それ以外の場合は s + 9 float = 53 実数 = 24 decimal および numeric = 18 decimal (p,s) および numeric (p,s) = p マネー = 19 スモールマネー = 10 ビジント = 19 int = 10 smallint = 5 tinyint = 3 ビット = 1 その他のすべてのデータ型 = 0 |
int NULL = 入力は無効です。 |
| Scale | 数値基本データ型の小数点の右側の桁数です。 decimal および numeric = 0 decimal (p,s) および numeric (p,s) = s money および smallmoney = 4 日付時間 = 3 datetime2 = 7 datetime2 (s) = s(0 - 7) DateTimeOffset = 7 DateTimeoffset (s) = s (0 - 7) 時間 = 7 時間 (s) = s(0 - 7) その他のすべての型 = 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
Examples
A. テーブルで sql_variant を使用する
次の例では、SQL_VARIANT_PROPERTYcolA46279.1 の colB 値 = に関する 1689 情報を取得しています。tableA には colA 型の sql_variant と、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)
B. 変数として sql_variant を使用する
次の例では、変数 SQL_VARIANT_PROPERTY に関する @v1 の情報を取得します。
DECLARE @v1 sql_variant;
SET @v1 = 'ABC';
SELECT @v1;
SELECT SQL_VARIANT_PROPERTY(@v1, 'BaseType');
SELECT SQL_VARIANT_PROPERTY(@v1, 'MaxLength');