Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Perché usare una chiave primaria non nulla in TSQL?

Modificato per chiarezza

Secondo la specifica SQL, una chiave primaria non può contenere NULL. Ciò significa che la decorazione di una colonna con "CHIAVE PRIMARIA NON NULLA" o semplicemente "CHIAVE PRIMARIA" dovrebbe fare la stessa cosa. Ma stai facendo affidamento sul motore SQL in questione seguendo correttamente lo standard SQL. Ad esempio, a causa di un bug iniziale, SQL Lite non implementa correttamente lo standard e consente valori null in chiavi primarie non intere (vedi sqlite.org/lang_createtable.html). Ciò significherebbe per (almeno) SQLLite le due istruzioni fanno due cose diverse.

Poiché "CHIAVE PRIMARIA NON NULLA" indica chiaramente l'intento e continua a prevalere valori non nulli anche se la chiave primaria viene rimossa, questa dovrebbe essere la sintassi preferita.