Tôi tạo chế độ xem với chỉ mục bỏ qua các giá trị null thông qua mệnh đề where ... tức là. nếu bạn chèn null vào bảng, dạng xem không quan tâm nhưng nếu bạn chèn giá trị không null, dạng xem sẽ thực thi ràng buộc.
create view dbo.UniqueAssetTag with schemabinding
as
select asset_tag
from dbo.equipment
where asset_tag is not null
GO
create unique clustered index ix_UniqueAssetTag
on UniqueAssetTag(asset_tag)
GO
Vì vậy, bây giờ bảng thiết bị của tôi có một cột asset_tag cho phép nhiều giá trị null nhưng chỉ các giá trị không null duy nhất.
Lưu ý:Nếu sử dụng mssql 2000, bạn sẽ cần phải " BẬT LẬP TRÌNH BẬT "ngay trước khi thực hiện bất kỳ thao tác chèn, cập nhật hoặc xóa nào trên bảng. Khá chắc chắn rằng điều này không bắt buộc trên mssql 2005 trở lên.