SQL Serverデータベースを開始日と終了日に制限して、リソースを予約することができないようにしました(つまり、重複または重複予約なし)。日付範囲のSQL Server規則
私のリソースは、テーブルがRESOURCEID、開始日、終了日 のように見える、ステータス
は、だから私は、リソース#1を持って言うことができますよう番号が付けられていると仮定します。私は、2011年1月1日から2011年1月16日までのご予約と、2011年1月10日から2011年1月18日までの別々の予約について、同じリソースでは予約できないようにしたいと考えています。
さらに複雑な問題が2つあります。リソースのStartDateは、リソースのEndDateと同じにすることができます。したがって、2011年1月8日から2011年1月16日まで、2011年1月20日から2011年1月20日までは、1人が他の人のチェックアウトと同じ日にチェックインすることができます。
さらに、ステータスフィールドは、リソースの予約がアクティブかキャンセルかを示します。キャンセルされた予約はすべて無視されます。
保存時にコード(Stored ProcsおよびC#)のこれらの重複予約または重複予約から保護されていますが、DB Contraintを追加して追加の保護層を追加したいと考えています。
これはSQL Serverでも可能ですか?アドバンス
でおかげ
トリガーでこのようなことをすることはできますが、私はあなたが必要とするものを制約の中で行うことはできないと思います。 – pmbAustin
[日付範囲の重複チェック制約](http://stackoverflow.com/questions/12035747/date-range-overlapping-check-constraint) – SqlZim