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

Tại sao không sử dụng khóa chính null trong TSQL?

Đã chỉnh sửa cho rõ ràng

Theo Đặc tả SQL, khóa chính không được chứa NULL. Điều này có nghĩa là việc trang trí một cột bằng "KHÔNG ĐẦY ĐỦ KHÓA CHÍNH" hoặc chỉ "KHÓA CHÍNH" sẽ làm điều tương tự. Nhưng bạn đang dựa vào công cụ SQL được đề cập một cách chính xác theo tiêu chuẩn SQL. Ví dụ do lỗi ban đầu, SQL Lite không triển khai đúng tiêu chuẩn và cho phép giá trị rỗng trong khóa chính không phải số nguyên (xem sqlite.org/lang_createtable.html). Điều đó có nghĩa là đối với SQLLite (ít nhất), hai câu lệnh thực hiện hai việc khác nhau.

Vì "KEY CHÍNH KHÔNG ĐẦY ĐỦ" chỉ rõ ý định và tiếp tục đặt trước các giá trị không rỗng ngay cả khi khóa chính bị xóa, đó phải là cú pháp được ưu tiên.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách khắc phục “Không thành công câu lệnh ALTER TABLE SWITCH” Msg 4982 (SQL Server)

  2. Cú pháp không chính xác gần ''

  3. Sử dụng một biến trong truy vấn OPENROWSET

  4. Nhật ký giao dịch SQL Server - Phần 1

  5. Đối sánh Mờ trong SQL