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 FormID
và isDefault
đặ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