Veri türü dönüştürme (veritabanı altyapısı)
Aşağıdaki senaryolarda veri türlerine dönüştürülebilir:
Bir nesneden veri için karşılaştırıldığında, ya da başka bir nesne verileri ile birlikte taşındığında verileri bir nesne veri türünden diğer veri türüne dönüştürülmesi gerekebilir.
Zaman verileri bir Transact-SQLsonuç sütunu, dönüş kodu veya çıktı parametresi bir program değişken taşınır, gelen veri dönüştürülmesi gerekir SQL Serversistem veri türü değişken veri türü için.
Bir uygulama değişkeni arasında dönüştürürken ve bir SQL Serversonuç kümesi sütunu, kod, parametre veya parametre işaretçisi, veritabanı API tarafından desteklenen veri türü dönüştürmeleri tanımlanır.
Açık ve örtülü dönüştürme
Veri türleri, örtük veya açık olarak dönüştürülebilir.
Örtülü Dönüştürmelere kullanıcıya görünür değildir. SQL Serverotomatik olarak verileri bir veri türünden diğerine dönüştürür. Örneğin, ne zaman bir smallintkarşılaştırılır bir int, smallintörtülü olarak dönüştürülür intönce karşılaştırma gelirleri.
Açık dönüştürmeleri cast veya convert işlevleri kullanabilirsiniz.
cast ve convert işlevleri (yerel bir değişken, bir sütun ya da başka bir deyim) bir veri türünden diğerine dönüştürmek. Örneğin, aşağıdaki CASTişlevi sayısal değerini dönüştürür $157.27bir karakter dizesini '157.27':
CAST ( $157.27 AS VARCHAR(10) )
CAST ( $157.27 AS VARCHAR(10) )
İsterseniz DÖNÜŞTÜRMEK yerine kullanın döküm Transact-SQLprogram kodu ile ISO uymayı. convert Dönüştür stil işlevsellikten yararlanmak için oyuncular yerine kullanın.
İçin izin verilen tüm açık ve örtülü veri türü dönüştürmeleri aşağıda gösterilmiştir SQL Serversistem tarafından sağlanan veri türleri. Bunlar xml, bigint ve sql_variant türleridir. Ataması üzerine örtülü dönüştürülmesi sql_variantveri türüne örtük dönüştürme ama sql_variant.
Veri türü dönüştürme davranışları
Bir veri türünü dönüştürürken bazı açık ve örtülü veri türü dönüştürmeleri desteklenmez SQL Serverbaşka bir nesneye. Örneğin, bir nchardeğeri dönüştürülür edilemez bir imagedeğer. Bir ncharsadece dönüştürülebilir binaryaçık dönüştürme, bir örtük dönüştürme kullanarak binarydesteklenmiyor. Ancak, bir ncharaçıkça veya örtük olarak dönüştürülebilir nvarchar.
Aşağıdaki konular, onların karşılık gelen veri türleri tarafından sergilenen dönüştürme davranışları açıklamaktadır:
tamsayı, büyük tamsayı, küçük tamsayı ve mini tamsayı (Transact-SQL) |
Saklı yordamları ole Otomasyon kullanarak veri türleri dönüştürme
Çünkü SQL Serverkullanan Transact-SQLveri türleri ve ole Otomasyon kullanan Visual Basicveri türleri, saklı yordamları aralarında geçen verileri dönüştürmek gerekir Otomasyonu.
Aşağıdaki tabloda açıklanmıştır SQL Serveriçin Visual Basicveri türü dönüştürmeleri.
SQL Server veri türü |
Visual Basic veri türü |
---|---|
char, varchar, text, nvarchar, ntext |
String |
decimal, numeric |
String |
bit |
Boolean |
binary, varbinary, image |
Tek boyutlu Byte()dizi |
int |
Long |
smallint |
Integer |
tinyint |
Byte |
float |
Double |
real |
Single |
money, smallmoney |
Currency |
datetime, smalldatetime |
Date |
Bir şey null olarak ayarlamak |
VariantNULL olarak ayarlamak |
Tüm tek SQL Serverdeğerleri tek bir dönüştürülür Visual Basicdeğeri dışında binary, varbinary, ve imagedeğerler. Bu değerler bir tek boyutlu dönüştürülür Byte()dizi Visual Basic. Bu diziye sahip Byte(0 length1 ) nereye lengthbayt sayısı SQL Server binary, varbinary, ya imagedeğerler.
Bu dönüşümler vardır Visual Basicveri türleri SQL Serververi türlerini.
Visual Basic veri türü |
SQL Server veri türü |
---|---|
Long, Integer, Byte, Boolean, Object |
int |
Double, Single |
float |
Currency |
money |
Date |
datetime |
String4000 karakter veya daha az |
varchar/nvarchar |
String4000'den fazla karakter ile |
text/ntext |
Tek boyutlu Byte()dizi 8000 bayt veya daha az |
varbinary |
Tek boyutlu Byte()8000 bayttan fazla dizi |
image |
Ayrıca bkz.
Başvuru
ole Otomasyon depolanan yordamlar (Transact-sql)