where句を介してnullを無視するインデックスを使用してビューを作成します...つまり.テーブルに null を挿入してもビューは気にしませんが、null 以外の値を挿入すると、ビューは制約を適用します。
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
したがって、私の機器テーブルには、複数の null を許可するが一意の非 null 値のみを許可する asset_tag 列があります。
注:mssql 2000 を使用している場合は、"SET ARITHABORT ON が必要です。 " テーブルで挿入、更新、または削除が実行される直前。これは mssql 2005 以降では必須ではありません。