Y a-t-il une différence entre les nombres décimaux et numériques dans SQL Server?
y a-t-il une différence entre les types de données décimales et numériques dans SQL Server?
Quand dois-je utiliser décimal et quand numérique?
6 réponses
Ils sont les mêmes. Numérique est fonctionnellement équivalent décimal.
MSDN: décimal et numérique
c'est ce que dit alors la norme SQL2003 (§6.1 types de données) sur les deux:
<exact numeric type> ::=
NUMERIC [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| DECIMAL [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| DEC [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| SMALLINT
| INTEGER
| INT
| BIGINT
...
21) NUMERIC specifies the data type
exact numeric, with the decimal
precision and scale specified by the
<precision> and <scale>.
22) DECIMAL specifies the data type
exact numeric, with the decimal scale
specified by the <scale> and the
implementation-defined decimal
precision equal to or greater than the
value of the specified <precision>.
à ma connaissance, il n'y a pas de différence entre les types de données numériques et décimales. Ils sont synonymes les uns des autres et les deux peuvent être utilisés. Les types de données décimales et numériques sont des types de données numériques avec une précision et une échelle fixes.
Edit:
parlant à quelques collègues peut-être its a quelque chose à voir avec décimal étant la norme ANSI SQL et numérique étant un Mircosoft préfère comme son plus couramment trouvé dans les langages de programmation. ...Peut-être ;)
la réponse de Joakim Backman est spécifique, mais cela pourrait apporter plus de clarté.
il y a une différence mineure. Selon SQL For Dummies, 8ème édition (2013):
le type de données décimales est semblable à numérique. ... La différence est que votre application peut spécifier une précision supérieure à ce que vous spécifiez - le cas échéant, la mise en œuvre utilise la plus grande précision. Si vous ne pas préciser la précision ou l'échelle, le mise en œuvre utilise la valeur par défaut valeurs, comme il le fait avec le type numérique.
il semble que la différence sur quelques implémentations de SQL est dans l'intégrité des données. Décimal permet le débordement de ce qui est défini sur la base de certaines valeurs par défaut du système, où comme numérique ne le fait pas.
ce sont des synonymes, aucune différence.Les types de données décimales et numériques sont des types de données numériques avec une précision et une échelle fixes.
-- Initialize a variable, give it a data type and an initial value
declare @myvar as decimal(18,8) or numeric(18,8)----- 9 bytes needed
-- Increse that the vaue by 1
set @myvar = 123456.7
--Retrieve that value
select @myvar as myVariable
Ils sont exactement les mêmes. Lorsque vous l'utilisez, soyez cohérent. Utilisez l'un d'eux dans votre base de données