sql_variant (Transact-sql)

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

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

sql_variant

Açıklamalar

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

Bir sütun türü sql_variantfarklı veri türleri içeren. Örneğin, bir sütun olarak tanımlanan sql_variantsaklayabilirsiniz int, binary, ve chardeğerler. Kullanarak depolanamaz değerlerin türleri aşağıdaki tabloda sql_variant:

varchar(max)

varbinary(max)

nvarchar(max)

xml

text

ntext

image

rowversion (timestamp)

sql_variant

geography

hierarchyid

geometry

Kullanıcı tanımlı türler

datetimeoffset

sql_varianten fazla uzunluğu 8016 bayt olabilir. Bu temel tür bilgileri ve taban türü değeri içerir. Maksimum gerçek taban türü değeri 8.000 bayt uzunluğudur.

A sql_variantveri türü gerekir ilk döküm için temel veri türü değeri toplama ve çıkarma gibi işlemlere katılan önce.

sql_variantVarsayılan bir değer atayabilirsiniz. Bu veri türünü de temel değeri null olabilir, ancak boş değerleri ilişkili bir temel tür olmaz. Ayrıca, sql_variantbaşka olamaz sql_varianttemel türü olarak.

Benzersiz, birincil veya yabancı anahtar türü sütunlar içerebilir sql_variant, ama belirli bir satıra anahtarı oluşturan veri değerleri toplam uzunluğu maksimum uzunluk dizin olmamalı. Bu 900 bayttır.

Bir tablonun herhangi bir sayı olabilir sql_variantsütun.

sql_variantCONTAINSTABLE ve freetexttable kullanılamaz.

odbc tam olarak desteklemiyor sql_variant. Bu nedenle, sorgu sql_variantsütunlar, ikili veri olarak döndürülür, odbc (msdasql) için Microsoft ole db sağlayıcı kullanırken. Örneğin, bir sql_variant'PS2091' karakter dizesi veri içeren sütun 0x505332303931 döndürülür.

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

sql_variantVeri türü dönüştürme veri türü hiyerarşisi listesinin üstünde ait. İçin sql_variantkarşılaştırmalar, SQL Serververi türü hiyerarşisi sırası gruplandırılmış veri türü ailelerin.

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

Kesin sayısal

money

Kesin sayısal

smallmoney

Kesin sayısal

bigint

Kesin sayısal

int

Kesin sayısal

smallint

Kesin sayısal

tinyint

Kesin sayısal

bit

Kesin sayısal

nvarchar

Unicode

nchar

Unicode

varchar

Unicode

char

Unicode

varbinary

Binary

binary

Binary

uniqueidentifier

Uniqueidentifier

Aşağıdaki kurallar uygulanır sql_variantkarşılaştırma:

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

  • Ne zaman sql_variantfarklı 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ü hiyerarşisi grafikte daha düşük olan değer diğer veri türü örtülü olarak dönüştürülür ve karşılaştırma sonra yapılan.

  • Ne zaman sql_variantdeğerlerini char, varchar, nchar, ya nvarcharveri türleri karşılaştırıldığında, onların alfabe, öncelikle aşağıdaki kriterlere göre karşılaştırılır: LCID, LCID sürümü, karşılaştırma bayrakları ve sıralama kimliği Bu ölçütlerin her tamsayı değerler ve listelenen sırada karşılaştırılır. Tüm bu kriterler eşit ise, gerçek dize değerlerini harmanlama göre karşılaştırılır.

Sql_variant veri dönüştürme

İşlerken sql_variantveri türü SQL Servernesneleri örtük dönüştürmeler ile diğer veri türlerini destekleyen sql_varianttürü. Ancak, SQL ServerÖrtülü Dönüştürmelere desteklemeyen sql_variantbaşka bir veri türüne sahip bir nesne verileri.

Ayrıca bkz.

Başvuru

CAST ve CONVERT (Transact-SQL)

SQL_VARIANT_PROPERTY (Transact-sql)