sql >> Base de Datos >  >> RDS >> Sqlserver

¿Por qué usar una clave primaria no nula en TSQL?

Editado para mayor claridad

De acuerdo con la Especificación SQL, una clave principal no puede contener NULL. Esto significa que decorar una columna con "NOT NULL PRIMARY KEY" o simplemente "PRIMARY KEY" debería hacer lo mismo. Pero está confiando en que el motor SQL en cuestión sigue correctamente el estándar SQL. Como ejemplo, debido a un error inicial, SQL Lite no implementa correctamente el estándar y permite valores nulos en claves primarias no enteras (consulte sqlite.org/lang_createtable.html). Eso significaría para (al menos) SQLLite que las dos declaraciones hacen dos cosas diferentes.

Como "NOT NULL PRIMARY KEY" indica claramente la intención y continúa imponiendo valores no nulos incluso si se elimina la clave principal, esa debería ser la sintaxis preferida.