Documente Academic
Documente Profesional
Documente Cultură
No SQL Server, a precisão máxima padrão de tipos de dados numeric e decimal é 38.
Em versões anteriores do SQL Server, o máximo padrão é 28.
Quando duas expressões com o mesmo tipo de dados mas com comprimentos diferentes
são comparados usando UNION, EXCEPT ou INTERSECT, o comprimento resultante
é o comprimento máximo das duas expressões.
A precisão e a escala dos tipos de dados numéricos além de decimal são fixos. Se um
operador aritmético tiver duas expressões do mesmo tipo, o resultado terá o mesmo tipo
de dados com precisão e escala definidas para esse tipo. Se um operador aritmético tiver
duas expressões com tipos de dados numéricos diferentes, a regras de precedência do
tipo de dados definirão os tipos de dados do resultado. O resultado terá a precisão e a
escala definidas para seu tipo de dados.
A tabela a seguir define como a precisão e a escala do resultado são calculadas quando o
resultado de uma operação é do tipo decimal. O resultado será decimal se uma das
seguintes condições for verdadeira:
As expressões de operandos são indicadas como expressão e1, com precisão p1 e escala
s1, e expressão e2, com precisão p2 e escala s2. A precisão e a escala de qualquer
expressão que não seja decimal serão aquelas definidas para o tipo de dados da
expressão.
Escala de
Operação Precisão de resultado
resultado*
máx(s1, s2) + máx (p1-s1, p2-
e1 + e2 máx(s1, s2)
s2) + 1
máx(s1, s2) + máx(p1-s1, p2-
e1 - e2 máx(s1, s2)
s2) + 1
e1 * e2 p1 + p2 + 1 s1 + s2
p1 - s1 + s2 + máx(6, s1 + p2 máx(6, s1 + p2 +
e1 / e2
+ 1) 1)
e1 { UNION | EXCEPT | máx(s1, s2) + máx(p1-s1, p2-
máx(s1, s2)
INTERSECT } e2 s2)
mín(p1-s1, p2 -s2) + máx(
e1 % e2 máx(s1, s2)
s1,s2 )