sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server, kan du inte infoga null i primärnyckelfältet?

Primära nycklar i alla relationsdatabas får inte vara NULL - det är en av de viktigaste, grundläggande egenskaperna hos en primärnyckel.

Se:SQL by Design:hur man väljer primärnyckeln

UPPDATERING: ok, så du vill ha en "auto-increment" primärnyckel i SQL Server.

Du måste definiera den som en INT IDENTITY i din CREATE TABLE-sats:

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

och sedan när du gör en INSERT måste du explicit specificera kolumnerna som ska infogas, men ange bara inte kolumnen "ID" i den listan - då kommer SQL Server att hantera att hitta rätt värde automagiskt:

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

Om du vill göra detta efter att redan ha skapat tabellen kan du göra det i SQL Server Management Studios tabelldesigner:



  1. GUI-verktyg för PostgreSQL

  2. Hur man filtrerar frågeresultat i PostgreSQL

  3. Python MySQLdb / MySQL INSERT IGNORE &Kontrollera om ignoreras

  4. Felkod:2013. Förlorade anslutningen till MySQL-servern under förfrågan