Duyarlık, ölçek ve uzunluk (Transact-SQL)

Precision birkaç basamak sayısıdır.Ölçek, bir sayı ondalık noktanın sağındaki basamak sayısıdır.Örneğin, 123.45 duyarlılığı 5 ve 2 ölçeğini birdir.

De SQL Server, varsayılan duyarlık üst sınırını numeric ve decimal veri türleri olan 38.Önceki sürümlerinde SQL Server, en fazla 28 varsayılandır.

Bir sayısal veri türü numarasını depolamak için kullanılan bayt uzunluğundadır.Bir karakter dize veya Unicode veri türü karakter uzunluğundadır.Uzunluğu binary, varbinary, ve image veri türleri olan sayıda bayt.Örneğin, bir int veri türü tutun 10 basamak, 4 bayt, depolanır ve kabul etmiyor ondalık noktalar.int Veri türüne sahip precision 10 4 uzunluğu ve ölçeği 0.

İki char, varchar, binary, veya varbinary ifadeler birleştirilmiş, elde edilen ifade uzunluğu uzunlukları iki kaynak ifadeler veya 8.000 karakter, hangisi daha az.

İki nchar veya nvarchar ifadeler birleştirilmiş, elde edilen ifade uzunluğu uzunlukları iki kaynak ifadeler veya 4.000 karakter, hangisi daha az.

UNION kullanarak aynı veri türü ancak farklı uzunluklarını iki ifadeler karşılaştırıldığında dışında veya KESİŞEN, iki deyim uzunluğu en fazla sonuç uzunluğudur.

Duyarlık ve ölçeği sayısal veri türlerinin yanı sıra decimal giderilen.Aritmetik işleç aynı türden iki ifadeler varsa, sonuçta aynı veri türü duyarlık ve ölçek türü için tanımlanmış olan vardır.Bir işleç farklı sayısal veri türlerine sahip iki ifadeler varsa, veri türü önceliği kurallarına sonucu veri türünü tanımlar.Duyarlık ve ölçeği, veri türü için tanımlanan sonucu vardır.

Aşağıdaki tablo bir işlemin sonucu türü olduğunda duyarlık ve ölçek sonucun nasıl hesaplanacağını tanımlar decimal.Sonuç decimal ne zaman aşağıdakilerden biri doğrudur:

  • Her iki ifade olan decimal.

  • Bir ifade decimal ve başka bir veri türüne daha düşük bir önceliğe sahip decimal.

İşlenen ifadeler precision p1 ve ölçek s1 ve duyarlılık p2 ile ifade e2 ile ifade e1 olarak belirtilir ve s2 ölçekleyin.Duyarlık ve ölçeği için herhangi bir ifade değil decimal duyarlık ve ölçek ifadeveri türü için tanımlanmış olan.

İşlem

Sonuç duyarlık

Ölçek neden *

E1 + e2

Max (s1, s2) + max (s1 p1, p2 s2) + 1

Max (s1, s2)

E1 - e2

Max (s1, s2) + max (s1 p1, p2 s2) + 1

Max (s1, s2)

E1 * e2

P1 + p2 + 1

S1 + s2

E1 / e2

P1 - s1 + s2 + max (6, s1 + p2 + 1)

Max (6, s1 + p2 + 1)

E1 {UNION | DIŞINDA | INTERSECT} e2

Max (s1, s2) + max (s1 p1, p2 s2)

Max (s1, s2)

E1% e2

Min (s1 p1, p2-s2) + max (s1, s2)

Max (s1, s2)

* Sonuç duyarlık ve ölçek 38 mutlak bir maksimum vardır.Sonuç duyarlık 38'den büyük olduğunda, ilgili ölçek kesilmiş bir sonuç ayrılmaz parçası önlemek için azalır.