Existe-t-il une différence entre les types de données DECIMAL et NUMERIC dans SQL Server?
Quand devrais-je utiliser DECIMAL et quand NUMERIC?
sql-server
sqldatatypes
Dhanapal
la source
la source
decimal
est exactement aussi précis que déclaré, alors qu'ilnumeric
est au moins aussi précis que déclaré. Dans SQL Server, les deux sont exactement aussi précis que déclaré, c'est-à-dire qu'il n'utilise pas la flexibiliténumeric
que la norme permet.Column '<referencedColumn>' is not the same data type as referencing column '<parentTable>.<parentColumn>' in foreign key '<yourKeyName>'
. Ils doivent tous les deux être NUMERIC (x, y), ou tous les deux être DECIMAL (x, y).decimal
est au moins aussi précis que déclaré, alors qu'ilnumeric
est exactement aussi précis que déclaré.Voici ce que dit alors la norme SQL2003 (§6.1 Types de données) sur les deux:
la source
À ma connaissance, il n'y a aucune différence entre les types de données NUMERIC et DECIMAL. Ils sont synonymes l'un de l'autre et l'un ou l'autre peut être utilisé. Les types de données DECIMAL et NUMERIC sont des types de données numériques avec une précision et une échelle fixes.
Éditer:
S'adressant à quelques collègues, peut-être que cela a quelque chose à voir avec DECIMAL étant le standard SQL ANSI et NUMERIC étant celui que Mircosoft préfère car il est plus communément trouvé dans les langages de programmation. ...Peut être ;)
la source
Ce sont des synonymes, pas de différence du tout. Les types de données Decimal et Numeric sont des types de données numériques avec une précision et une échelle fixes.
la source
La réponse de Joakim Backman est précise, mais cela peut apporter plus de clarté.
Il y a une petite différence. Selon SQL For Dummies, 8e édition (2013):
Il semble que la différence sur certaines implémentations de SQL réside dans l'intégrité des données. DECIMAL permet un dépassement de ce qui est défini sur la base de certaines valeurs par défaut du système, alors que NUMERIC ne le fait pas.
la source
Ce sont exactement les mêmes. Lorsque vous l'utilisez, soyez cohérent. Utilisez l'un d'entre eux dans votre base de données
la source