tamsayı, büyük tamsayı, küçük tamsayı ve mini tamsayı (Transact-SQL)
Tamsayı verisi kullanan tam sayısal veri türleri.
Veri türü |
Aralık |
Depolama |
---|---|---|
bigint |
-2^63 (-9,223,372,036,854,775,808) - 2^63-1 (9,223,372,036,854,775,807) |
8 Bayt |
int |
-2^31 (-2,147,483,648) - 2^31-1 (2,147,483,647) |
4 Bayt |
smallint |
-2^15 (-32,768) - 2^15-1 (32,767) |
2 Bayt |
tinyint |
0 - 255 |
1 Byte |
Açıklamalar
int veri türü SQL Server uygulamasındaki ana tamsayı veri türüdür. bigint veri türü, tamsayı değerleri int veri türü tarafından desteklenen aralığı aştığında kullanılma amaçlıdır.
Veri türü öncelik çizelgesinde bigint veri türü, smallmoney ile int arasındadır.
İşlevler yalnızca parametre ifadesi bigint veri türünde olduğunda bigint döndürür. SQL Server diğer tamsayı veri türlerini (tinyint, smallint, ve int) otomatik olarak bigint veri türüne yükseltmez.
Dikkat |
---|
int, smallint, tinyint veya bigint sabit değerlerini float, real, decimal veya numeric veri türlerine örtülü veya açık olarak dönüştürmek üzere +, -, *, / veya % aritmetik işleçlerini kullandığınızda, SQL Server'ın veri türünü ve ifadenin kesinliğini hesaplamak üzere uyguladığı kurallar, sorgunun otomatik olarak parametrelendirilme durumuna bağlı olarak değişir. Dolayısıyla sorgulardaki benzer ifadeler bazen farklı sonuçlar üretebilir. Sorgu otomatik olarak parametrelendirilmediğinde, sabit değer, belirtilen veri türüne dönüştürülmeden önce ilk önce, kesinliği sabitin değerini tutabilecek kadar yüksek olan numeric sayı türüne dönüştürülür. Örneğin 1 sabit değeri numeric (1, 0) değerine, 250 sabit değeri ise numeric (3, 0) sabit değerine dönüştürülür. Sorgu otomatik olarak parametrelendirildiğinde, sabit değer, son veri türüne dönüştürülmeden önce her zaman numeric (10, 0) türüne dönüştürülür. Bölme (/) işleci kullanıldığında, yalnızca sonuç türünün kesinliği benzer sorgular arasında farklılık göstermekle kalmaz, sonuç değerinin kendisi de farklılık gösterebilir. Örneğin, SELECT CAST (1.0 / 7 AS float) ifadesini içeren otomatik parametrelendirilmiş bir sorgunun sonuç değeri, numeric (10, 0) veri türüne sığması için değerin fazlalığı atılacağından aynı sorgunun otomatik parametrelendirilmemiş biçiminin sonuç değerinden farklı olur. |
Tamsayı Verilerini Dönüştürme
Tamsayılar örtülü olarak bir karakter veri türüne dönüştürüldüğünde, tamsayı karakter alanına sığmayacak kadar büyükse, SQL Server yıldız (*) işareti olan ASCII karakteri 42'yi girer.
2,147,483,647'den büyük tamsayı sabitleri bigint veri türüne değil decimal veri türüne dönüştürülür. Aşağıdaki örnek eşik değeri aşıldığında sonucun int veri türünden decimal veri türüne döndüğünü göstermektedir.
SELECT 2147483647 / 2 AS Result1, 2147483649 / 2 AS Result2 ;
SELECT 2147483647 / 2 AS Result1, 2147483649 / 2 AS Result2 ;
Sonuç kümesi buradadır.
Result1 Result2
1073741823 1073741824.500000
Result1 Result2
1073741823 1073741824.500000
Ayrıca bkz.
Başvuru
CAST ve CONVERT (Transact-SQL)
DECLARE @local\_variable (Transact-SQL)