0

次のようなデータベーステーブルがあります。

create table Table1(
Date varchar(10),
Batch_Name varchar(50),
Hall_Name varchar(50),
Lecturer_Name varchar(100))

特定の日に同じバッチ名、ホール名、または講師名の挿入を制限する、このテーブルのトリガーを作成したいと考えています。例: ユーザーが挿入した場合、

**Record 1 :** 2012/08/15 - Batch 1 - Hall 1 - Lecturer 1
**Record 2 :** 2012/08/15 - Batch 2 - Hall 2 - Lecturer 2

表に、それは正しいはずです。しかし、ユーザーが挿入しようとした場合

レコード 1 : 2012/08/15 - バッチ 1 - ホール 1 - 講師 1

**Record 2 :** 2012/08/15 - Batch 1 - Hall 1 - Lecturer 2 **OR**
**Record 2 :** 2012/08/15 - Batch 1 - Hall 2 - Lecturer 1 **OR** 
**Record 2 :** 2012/08/15 - Batch 2 - Hall 1 - Lecturer 1 

エラーが発生するはずです。

このテーブルを使用して、特定のシステムのタイム テーブルを作成しています。このトリガーによって達成しようとしているのは、ユーザーが同じホール、講師、またはバッチを異なるレコードで同じ日に割り当てようとした場合にエラーを提供したいということです。これは明らかに過剰な割り当てです。トリガーに関してはかなりの初心者なので、誰かがこのシナリオの解決策を提供してくれると本当にありがたいです! DBMS として MS SQL Server 2008 を使用しています。前もって感謝します!

4

1 に答える 1

1

これは必ずしもトリガーではないと思います

これは、3つの一意のインデックスのセットのように聞こえます。

ペアに一意のインデックスを作成します。

day, lecturer
day, batch
day, hall
于 2012-08-15T15:04:18.547 に答える