私は(特に)2つの列を持つテーブルを持っています:
NotApplicable bit
TargetLevel numeric(5,2)
次のルールが適用される制約を作成する必要があります。
- NotApplicable と TargetLevel の両方を NULL にすることはできません
- NotApplicable と TargetLevel の両方に値を指定することはできません
- NotApplicable または TargetLevel には値が必要です
これは排他的 OR シナリオだと思いますか? しばらく前に試してみましたが、これが上記の最後のシナリオを説明していないことに気付きました。
ALTER TABLE [dbo].[my_Table] ADD CONSTRAINT [DF_tbl_my_Table_notApplicable] DEFAULT ((0)) FOR [notApplicable]
GO
ALTER TABLE [dbo].[my_Table] WITH CHECK ADD CONSTRAINT [CK_tbl_my_Table] CHECK ((COALESCE([targetLevel],[notapplicable]) IS NOT NULL))
GO
ALTER TABLE [dbo].[my_Table] CHECK CONSTRAINT [CK_tbl_my_Table]
GO
これを完成させるための助けをいただければ幸いです。また、上記の例で実際に必要な最後の ALTER ステートメントはありますか?