Czy istnieje różnica między typami danych DECIMAL i NUMERIC w programie SQL Server?
Kiedy należy używać DECIMAL, a kiedy NUMERIC?
sql-server
sqldatatypes
Dhanapal
źródło
źródło
decimal
jest dokładnie tak precyzyjny, jak oświadczył, gdynumeric
jest co najmniej tak dokładna jak oświadczył. W SQL Server oba są dokładnie tak precyzyjne, jak zadeklarowano, tj. Nie wykorzystują elastyczności, nanumeric
jaką pozwala standard.Column '<referencedColumn>' is not the same data type as referencing column '<parentTable>.<parentColumn>' in foreign key '<yourKeyName>'
. Obie wartości muszą mieć wartość NUMERIC (x, y) lub obie wartości DECIMAL (x, y).decimal
jest co najmniej tak precyzyjny, jak oświadczył, podczas gdynumeric
jest dokładnie tak precyzyjny, jak oświadczył.Oto co mówi wówczas standard SQL2003 (§6.1 Typy danych):
źródło
O ile mi wiadomo, nie ma różnicy między typami danych NUMERIC i DECIMAL. Są dla siebie synonimami i można użyć dowolnego z nich. Typy danych DECIMAL i NUMERIC to numeryczne typy danych o stałej precyzji i skali.
Edytować:
Rozmowa z kilkoma kolegami może mieć coś wspólnego z tym, że DECIMAL jest standardem ANSI SQL, a NUMERIC jest tym, który preferuje Mircosoft, ponieważ jest częściej spotykany w językach programowania. ...Może ;)
źródło
Są synonimami, nie ma żadnej różnicy. Typy danych dziesiętnych i liczbowych to numeryczne typy danych o stałej precyzji i skali.
źródło
Odpowiedź Joakima Backmana jest konkretna, ale może to nadać jej dodatkową jasność.
Jest niewielka różnica. Zgodnie z SQL For Dummies, wydanie 8 (2013):
Wydaje się, że różnica między niektórymi implementacjami SQL polega na integralności danych. DECIMAL umożliwia przepełnienie tego, co jest zdefiniowane na podstawie niektórych domyślnych ustawień systemowych, podczas gdy NUMERIC nie.
źródło
Są dokładnie takie same. Kiedy go używasz, bądź konsekwentny. Użyj jednego z nich w swojej bazie danych
źródło