Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Server, nie można wstawić wartości null do pola klucza podstawowego?

Klucze podstawowe w dowolnym relacyjna baza danych nie może mieć wartości NULL - jest to jedna z głównych, fundamentalnych cech klucza podstawowego.

Zobacz:SQL według projektu:jak wybrać klucz podstawowy

AKTUALIZACJA: ok, więc potrzebujesz klucza podstawowego "auto-inkrementacji" w SQL Server.

Musisz zdefiniować to jako INT IDENTITY w swojej instrukcji CREATE TABLE:

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

a następnie, gdy wykonujesz INSERT, musisz jawnie określić kolumny do wstawienia, ale po prostu nie podawaj kolumny "ID" na tej liście - wtedy SQL Server zajmie się znalezieniem właściwej wartości automagicznie:

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

Jeśli chcesz to zrobić po utworzeniu tabeli, możesz to zrobić w projektancie tabel w SQL Server Management Studio:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wykryć i powiązać zmiany między wartościami wierszy w tabeli SQL?

  2. 2 sposoby na zwrócenie nazwy serwera w SQL Server (T-SQL)

  3. IDENTITY() vs IDENTITY() w SQL Server:jaka jest różnica?

  4. Jak sprawdzić, które zamki trzymane są na stole

  5. Wykonywanie procedury składowanej przy użyciu struktury encji