sql_variant (Transact-SQL)

このデータ型には、textntextimagetimestamp、および sql_variant を除き、SQL Server 2005 でサポートしている各種データ型の値が格納されます。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sql_variant

解説

sql_variant は、ユーザー定義関数の列、パラメータ、変数、および戻り値で使用できます。sql_variant を使用することで、これらのデータベース オブジェクトは、他のデータ型の値をサポートできます。

sql_variant 型の列には、異なるデータ型の行を格納できます。たとえば、sql_variant として定義される列には、int 値、binary 値、および char 値を格納できます。次の表に、sql_variant を使用しても値を格納できないデータ型を示します。

varchar(max)

  • varbinary(max)

nvarchar(max)

xml

  • text

ntext

  • image

timestamp

  • sql_variant

ユーザー定義データ型

sql_variant 型の最大長は 8,016 バイトです。これには、基本データ型に関する情報と値の両方が含まれます。実際の基本データ型値の最大長は、8,000 バイトです。

sql_variant 型は、加算や減算などの処理を受ける前に、まず基本のデータ型値に型変換する必要があります。

sql_variant には既定値を割り当てることができます。このデータ型は、基になる値として NULL を持つこともできますが、NULL 値には基本データ型は関連付けられていません。また、sql_variant は、別の sql_variant をその基本データ型として使用することができません。

一意キー、主キー、または外部キーに sql_variant 型の列を含めることは可能ですが、特定の行のキーを構成するデータ値の全体の長さが、インデックスの最大長を超えないようにする必要があります。この最大長は 900 バイトです。

テーブルには、任意の数の sql_variant 列を設定できます。

sql_variant は、CONTAINSTABLE と FREETEXTTABLE では使用できません。

ODBC は、sql_variant を完全にはサポートしていません。Microsoft OLE DB Provider for ODBC (MSDASQL) を使用している場合、sql_variant 列のクエリはバイナリ データとして返されます。たとえば、sql_variant 列に "PS2091" という文字列データが含まれている場合、これは 0x505332303931 として返されます。

sql_variant 値の比較

sql_variant 型は、変換用のデータ型階層リストの先頭に位置しています。sql_variant 値の比較を行う場合、SQL Server データ型階層の順序は、データ型ファミリにグループ化されます。

データ型階層 データ型ファミリ

sql_variant

sql_variant

datetime

日付と時刻

smalldatetime

日付と時刻

float

概数型

real

概数型

decimal

真数型

money

真数型

smallmoney

真数型

bigint

真数型

int

真数型

smallint

真数型

tinyint

真数型

bit

真数型

nvarchar

Unicode

nchar

Unicode

varchar

Unicode

char

Unicode

varbinary

バイナリ

binary

バイナリ

uniqueidentifier

Uniqueidentifier

sql_variant 値の比較には、以下のルールが適用されます。

  • 基本データ型が異なる sql_variant 型の値を比較するとき、基本データ型のデータ型ファミリが異なる場合は、階層グラフでデータ型ファミリが高位の値が 2 つの値のうちでより高い値と判断されます。
  • 基本データ型が異なる sql_variant 型の値を比較するとき、基本データ型のデータ型ファミリが同じ場合、階層グラフで基本データ型が低位の値は、暗黙的に一方のデータ型に変換され、その後比較が行われます。
  • データ型が charvarcharnchar、または nvarchar である sql_variant 値の比較では、LCID、LCID バージョン、比較フラグ、および並べ替え ID の各基準に基づいて値が評価されます。これらの基準は、示されている順序で整数値として比較されます。

参照

関連項目

CAST および CONVERT (Transact-SQL)

その他の技術情報

sql_variant 型のデータの使用

ヘルプおよび情報

SQL Server 2005 の参考資料の入手