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

Làm cách nào để tạo một ràng buộc duy nhất cũng cho phép null?

Những gì bạn đang tìm kiếm thực sự là một phần của tiêu chuẩn ANSI SQL:92, SQL:1999 và SQL:2003, tức là một ràng buộc UNIQUE phải không cho phép các giá trị không phải NULL trùng lặp nhưng chấp nhận nhiều giá trị NULL.

Tuy nhiên, trong thế giới SQL Server của Microsoft, một NULL được cho phép nhưng nhiều NULL thì không ...

Trong SQL Server 2008 , bạn có thể xác định một chỉ mục được lọc duy nhất dựa trên một vị từ loại trừ NULL:

CREATE UNIQUE NONCLUSTERED INDEX idx_yourcolumn_notnull
ON YourTable(yourcolumn)
WHERE yourcolumn IS NOT NULL;

Trong các phiên bản trước đó, bạn có thể sử dụng VIEWS với vị từ KHÔNG ĐẦY ĐỦ để thực thi ràng buộc.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn SQL Server để tìm tất cả các quyền / quyền truy cập cho tất cả người dùng trong cơ sở dữ liệu

  2. Cách thanh lịch nhất để tạo hoán vị trong máy chủ SQL

  3. Cách thực thi Thủ tục được lưu trữ từ Laravel

  4. Làm thế nào để tách chuỗi bằng cách sử dụng ký tự phân tách ký tự bằng T-SQL?

  5. Mệnh đề WHERE trong SQL so khớp các giá trị với dấu cách ở cuối