Saya membuat tampilan dengan indeks yang mengabaikan nol melalui klausa where...yaitu. jika Anda memasukkan null ke dalam tabel, tampilan tidak peduli tetapi jika Anda memasukkan nilai bukan nol, tampilan akan memberlakukan batasan.
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
Jadi sekarang tabel peralatan saya memiliki kolom asset_tag yang memungkinkan beberapa null tetapi hanya nilai non null yang unik.
Catatan:Jika menggunakan mssql 2000, Anda harus "MENATUR ARITHABORT AKTIF " tepat sebelum penyisipan, pembaruan, atau penghapusan dilakukan pada tabel. Cukup yakin ini tidak diperlukan pada mssql 2005 dan yang lebih baru.