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

SQL Server, ¿no puede insertar nulo en el campo de clave principal?

Claves primarias en cualquiera No se permite que la base de datos relacional sea NULL:es una de las características principales y fundamentales de una clave principal.

Ver:SQL by Design:cómo elegir la clave principal

ACTUALIZACIÓN: bien, entonces desea una clave principal de "incremento automático" en SQL Server.

Debe definirlo como una IDENTIDAD INT en su instrucción CREATE TABLE:

 CREATE TABLE dbo.YourTable(ID INT IDENTITY, col1 INT, ..., colN INT)

y luego, cuando haga un INSERTAR, debe especificar explícitamente las columnas para insertar, pero simplemente no especifique la columna "ID" en esa lista; luego, SQL Server se encargará de encontrar el valor adecuado automáticamente:

 INSERT INTO dbo.YourTable(col1, col2, ..., colN) -- anything **except** `ID`      
 VALUES(va1l, val2, ..., valN)

Si desea hacer esto después de haber creado la tabla, puede hacerlo en el diseñador de tablas de SQL Server Management Studio: