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

Ràng buộc chỉ một bản ghi được đánh dấu là mặc định

Sử dụng chỉ mục được lọc duy nhất

Trên SQL Server 2008 trở lên, bạn có thể chỉ cần sử dụng chỉ mục được lọc duy nhất

CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
    ON TableName(FormID)
    WHERE isDefault = 1

Bảng ở đâu

CREATE TABLE TableName(
    FormID INT NOT NULL,
    isDefault BIT NOT NULL
)

Ví dụ:nếu bạn cố gắng chèn nhiều hàng có cùng một FormIDisDefault đặt thành 1, bạn sẽ gặp lỗi này:

Không thể chèn hàng khóa trùng lặp trong đối tượng 'dbo.TableName' với uniqueindex 'IX_TableName_FormID_isDefault'. Giá trị khóa trùng lặp là (1).

Nguồn:http://technet.microsoft.com/en-us/library/cc280372.aspx



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn N hàng trong SQL Server

  2. T-SQL - Chèn dữ liệu vào Bảng cha và Bảng con

  3. Kiểm tra sao lưu máy chủ SQL

  4. Không thể giải quyết xung đột đối chiếu

  5. Xem lịch sử công việc của SQL Server Agent với SSMS