私はスキーマ以下の通りですテーブルaccess
を持っている:許可Unique制約とCheck制約を関連付けることは可能ですか?
create table access (
access_id int primary key identity,
access_name varchar(50) not null,
access_time datetime2 not null default (getdate()),
access_type varchar(20) check (access_type in ('OUTER_PARTY','INNER_PARTY')),
access_message varchar(100) not null,
)
アクセスタイプのみがOUTER_PARTY and INNER_PARTY
です。
私が達成しようとしているのは、INNER_PARTY
の入力は、ログイン(ユーザ)ごとに1回だけでなければならないが、OUTER_PARTY
は何回でも記録できます。だから私は、それを直接行うことが可能かどうか、またはこの種の制限を作成するためのイディオムがあるかどうか疑問に思っていました。
私はこの質問をチェックしました:Combining the UNIQUE and CHECK constraintsですが、それは別のものを目指していたので私の状況に適用できませんでした。
感謝を。私は愚かにそれを質問に入れました。 'access_type'にクラスタード・インデックスを作成するのは正しいですか?また、ビューを作成した場合、基になるテーブルを更新することはできません。私が間違っていない場合は、トリガーの代わりにトリガーを使用してビューを更新する必要がありますが、それは複雑になります。 – Animesh
@Damien_The_Unbeliever - (クリーンアップされたコメント)合意。答えが示すように、インデックス付きのビューを使用する必要はありません。 –