Tôi có một bảng, một cái gì đó giống nhưUNIQUE chế điều khiển bởi một cột chút
FieldsOnForms(
FieldID int (FK_Fields)
FormID int (FK_Forms)
isDeleted bit
)
Cặp (FieldID, FormID) phải là duy nhất, nhưng chỉ khi nào hàng sẽ không bị xóa (isDeleted = 0).
Có thể xác định một ràng buộc như vậy trong SQLServer 2008 không? (không sử dụng trình kích hoạt)
P.S. Thiết lập (FieldID, FormID, isDeleted) là duy nhất thêm khả năng đánh dấu một hàng là đã xóa, nhưng tôi muốn có cơ hội thiết lập n hàng (theo FieldID, FormID) thành isDeleted = 1 và chỉ có một hàng isDeleted = 0
+1 câu trả lời hay nhất ... – gbn
Mặc dù tôi đang gặp lỗi, vì trường bit (Chuyển đổi cột thành kiểu dữ liệu của hằng số không được hỗ trợ cho chỉ mục đã lọc), điều này có vẻ là giải pháp mà tôi đã loking cho. – jaraics
@jaraics - Tôi vừa tạo bảng trong câu hỏi của bạn, sau đó là chỉ mục trong câu trả lời của tôi và nó được tạo mà không có lỗi. Ngoài ra, nếu bạn đang gặp phải các kiểu dữ liệu không phù hợp, thường thì tốt hơn là CAST (hoặc CONVERT) hằng số vào kiểu cột, chứ không phải theo cách khác. Không chắc liệu điều đó có khắc phục được sự cố của bạn hay không. –