SQL_variant (Transact-SQL)

Çeşitli değerleri depolayan bir veri türü SQL Server-desteklenen veri türleri.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

sql_variant

Açıklamalar

sql_variantsütun, parametre, değişkenleri ve kullanıcı tanımlı işlevler dönüş değerleri kullanılabilir.sql_variantdiğer veri türleri değerleri desteklemek bu veritabanı nesnelerini sağlar.

sütun türü sql_variant içerebilir satırları farklı veri türleri.Örneğin, olarak tanımlanan sütun sql_variant saklayabilir int, binary, ve char değerler.Aşağıdaki tablo kullanarak depolanamaz değer türlerini listeler sql_variant:

varchar(max)

varbinary(max)

nvarchar(max)

xml

text

ntext

image

timestamp

sql_variant

geography

hierarchyid

geometry

Kullanıcı tanımlı türler

sql_varianten çok uzunluğunu 8016 bayt olabilir.Bu temel tür bilgi ve temel türü değeri içerir.Gerçek taban türü değer uzunluğu en fazla 8.000 bayt'tır.

A sql_variant veri türü gerekir ilk artığını değerine temel veri türü toplama ve gibi işlemleri linki önceçıkarma.

sql_variantVarsayılan bir değer atanabilir.Bu veri türü null değerini temel olarak da sahip olabilirsiniz, ancak ilişkili bir temel türü null değerleri yoktur.Ayrıca, sql_variant olamaz başka sql_variant olarak temel alt türü.

A benzersiz, birincil veya yabancı anahtar türünde sütun içerebilir sql_variant, ancak anahtar belirli bir satır veri değerleri toplam uzunluğu en fazla uzunluğunu bir dizini. birden fazla olmamalıdırBu 900 bayttır.

Bir tablo herhangi bir sayıda olabilir sql_variant sütunlar.

sql_variantCONTAINSTABLE ve freetexttable kullanılamaz.

odbc tam olarak desteklemiyor sql_variant.Bu nedenle, sorgular sql_variant sütunlar, odbc (msdasql) için Microsoft ole DB sağlayıcı kullanırken, ikili veri olarak döndürülür.Örneğin, bir dize içerensütunsql_variant 0x505332303931 döndürülür.

Sql_variant değerleri karşılaştırma

sql_variant Veri türüne ait listenin veri türü hiyerarşisi için dönüştürme.İçin sql_variant karşılaştırmalar, SQL Server veri türü hiyerarşisi sırası gruplandırılmış veri türü aileleri.

Veri türü hiyerarşisi

Veri türü ailesi

sql_variant

sql_variant

datetime2

Tarih ve saat

datetimeoffset

Tarih ve saat

datetime

Tarih ve saat

smalldatetime

Tarih ve saat

date

Tarih ve saat

time

Tarih ve saat

float

Yaklaşık sayısal

real

Yaklaşık sayısal

decimal

Tam bir sayısal

money

Tam bir sayısal

smallmoney

Tam bir sayısal

bigint

Tam bir sayısal

int

Tam bir sayısal

smallint

Tam bir sayısal

tinyint

Tam bir sayısal

bit

Tam bir sayısal

nvarchar

Unicode

nchar

Unicode

varchar

Unicode

char

Unicode

varbinary

Binary

binary

Binary

uniqueidentifier

Uniqueidentifier

Aşağıdaki kurallar uygulanır sql_variant karşılaştırmaları:

  • Zaman sql_variant farklı bir temel veri türlerinden değerleri karşılaştırılır ve temel veri türleri farklı veri türü aileleri, olarak, veri türü ailesi hiyerarşisi grafikte daha yüksek değer kabul edilir büyük iki değerler.

  • Zaman sql_variant farklı bir temel veri türlerinden değerleri karşılaştırılır ve temel veri türleri aynı veri türü ailesinde, temel veri türü olan alt hiyerarşi grafiğinde değer diğer veri türü örtülü olarak dönüştürülür ve karşılaştırma sonra yapılan.

  • Zaman sql_variant değerlerini char, varchar, nchar, veya nvarchar veri türleri karşılaştırılır, kendi alfabe, öncelikle aşağıdaki ölçütlere göre karşılaştırılır: LCID, LCID sürümkarşılaştırma bayrakları ve sıralama kimliği.Bu ölçütlerin her tamsayı değerler ve listelendikleri sırada karşılaştırılır.Sonra bu ölçütlerin tümünü eşitse, gerçek dize değerlerini göre harmanlamakarşılaştırılır.