Duyarlık, Ölçek ve Uzunluk (Transact-SQL)
Duyarlık bir sayıda basamak sayısıdır.Ölçek, bir sayı ondalık virgülün sağındaki basamak sayısıdır.Örneğin, 5 bir duyarlık ve ölçeği 2 123.45 numarası vardır.
Içinde SQL Server, varsayılan duyarlık üst sınırını numeric ve decimal veri türleri, 38 olur. ' Ün önceki sürümlerinde SQL Server, en fazla 28 varsayılandır.
Bir sayısal veri türü numarasını saklamak için kullanılan bayt uzunluğundadır.Bir karakter dizesi ya da veri türü Unicode karakter uzunluğundadır.Uzunluğu binary, varbinary, ve image veri türleri bayt sayısıdır. Örneğin, bir int veri türünü 10 basamak alabilir, 4 bayt olarak depolanır ve ondalık ayırıcıları kabul etmez. The int data type has a precision of 10, a length of 4, and a scale of 0.
Iki char, varchar, binary, veya varbinary ifadeler birleştirilmiş, sonuçta elde edilen ifade uzunluğunu iki kaynak deyimlerde ya da 8000 karakterden uzunlukları toplamı, hangisi az ise.
Iki nchar veya nvarchar ifadeler birleştirilmiş, sonuçta elde edilen ifade uzunluğunu iki kaynak deyimlerde ya da 4.000 karakter uzunlukları toplamı, hangisi az ise.
UNION kullanarak aynı veri türünde ancak farklı uzunluklarını iki deyim karşılaştırıldığında DıŞıNDA veya KESIŞEN, uzunluğu en fazla iki deyimleri sonuç uzunluğudur.
Duyarlık ve ölçeği yanı sıra sayısal veri türlerinin decimal giderilmiştir. Aritmetik işleç aynı türden iki deyim varsa, sonuç, aynı veri duyarlık ve ölçeği bu türü için tanımlanan türüne sahiptir.Veri türü öncelik kuralları, bir işleç, farklı bir sayısal veri türlerine sahip iki deyim varsa, sonuç veri türünü tanımlayın.Sonuç, duyarlık ve ölçeği veri türü için tanımlanan vardır.
Aşağıdaki tabloda, bir işlemin sonucu türü olduğunda nasıl duyarlık ve ölçeği sonucu hesaplandığı tanımlar decimal. Sonuç decimal ne zaman aşağıdakilerden biri doğrudur:
Her iki ifade edilir. decimal.
Bir ifade decimal ve diğer daha düşük bir önceliğe sahip olan bir veri türü decimal.
Işlenen deyimleri ifade e1, duyarlık p1 ve ölçek s1 ve ifade e2, duyarlık p2 ile belirtilen ve s2 ölçeklendirme.Duyarlık ve ölçeği olmayan herhangi bir deyimdir decimal duyarlık ve ölçeği ifade veri türü için tanımlanmış durumda.
Işlem |
Sonuç duyarlığı |
Ölçek neden * |
---|---|---|
E1 + e2 |
MAX (s1, s2) + max (p1 s1, p2 s2) + 1 |
MAX (s1, s2) |
E1 - e2 |
MAX (s1, s2) + max (p1 s1, p2 s2) + 1 |
MAX (s1, s2) |
E1 * e2 |
P1 + p2 + 1 |
S1 + % s2 |
E1 / e2 |
P1 - s1 + % s2 + maks (6, s1 + p2 + 1) |
MAX (6, s1 + p2 + 1) |
E1 {UNION | EXCEPT | INTERSECT} e2 |
MAX (s1, s2) + max (p1 s1, p2 s2) |
MAX (s1, s2) |
% e2 E1 |
Min (p1 s1, s2 olan p2-) + maks (s1, s2) |
MAX (s1, s2) |
* Sonuç duyarlık ve ölçeği 38 mutlak bir en fazla olması.Bir sonuç duyarlık 38 ' büyük olduğunda, kesilmiş bir sonuç ayrılmaz bir parçası önlemek için ilgili ölçek düşürülür.