Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Warum sollte man in TSQL einen Nicht-Null-Primärschlüssel verwenden?

Aus Gründen der Klarheit bearbeitet

Gemäß der SQL-Spezifikation darf ein Primärschlüssel keine NULL enthalten. Dies bedeutet, dass das Dekorieren einer Spalte mit entweder "NOT NULL PRIMARY KEY" oder nur "PRIMARY KEY" dasselbe bewirken sollte. Sie verlassen sich jedoch darauf, dass die betreffende SQL-Engine den SQL-Standard korrekt befolgt. Beispielsweise implementiert SQL Lite aufgrund eines frühen Fehlers den Standard nicht korrekt und erlaubt Nullwerte in nicht ganzzahligen Primärschlüsseln (siehe sqlite.org/lang_createtable.html). Das würde für (zumindest) SQLLite bedeuten, dass die beiden Anweisungen zwei verschiedene Dinge tun.

Da "NOT NULL PRIMARY KEY" eindeutig die Absicht anzeigt und weiterhin Nicht-Null-Werte erzwingt, selbst wenn der Primärschlüssel entfernt wird, sollte dies die bevorzugte Syntax sein.