SQL_variant (Transact-SQL)
Çeşitli değerleri depolayan bir veri türü SQL Server-desteklenen veri türleri.
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.