Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server, không thể chèn null vào trường khóa chính?

Khóa chính trong bất kỳ cơ sở dữ liệu quan hệ không được phép là NULL - đó là một trong những đặc điểm cơ bản, chính của khóa chính.

Xem: SQL theo thiết kế:cách chọn khóa chính

CẬP NHẬT: được, vì vậy bạn muốn có một khóa chính "tự động tăng" trong SQL Server.

Bạn cần xác định nó như là một INT IDENTITY trong câu lệnh CREATE TABLE của bạn:

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

và sau đó khi bạn thực hiện INSERT, bạn cần chỉ định rõ ràng các cột để chèn, nhưng chỉ cần không chỉ định cột "ID" trong danh sách đó - sau đó SQL Server sẽ tự động xử lý việc tìm kiếm giá trị thích hợp:

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

Nếu bạn muốn thực hiện việc này sau khi đã tạo bảng, bạn có thể thực hiện việc này trong trình thiết kế bảng của 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. Phải khai báo biến vô hướng @Id?

  2. Làm cách nào để chuyển đổi tích tắc sang định dạng ngày tháng?

  3. So sánh phần thời gian bỏ qua DATETIME và DATE

  4. lấy một chuỗi được phân tách bằng dấu phẩy từ các hàng

  5. Sử dụng NOLOCK Hint trong EF4?