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 - Batch 1 - Hall 1 - Lecturer 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 

它应该提供一个错误。

我正在使用此表为特定系统创建时间表。我试图通过此触发器实现的是,如果用户尝试在同一天在不同的记录上分配相同的大厅、讲师或批次,我想提供一个错误,这显然是过度分配。在触发器方面,我是一个新手,所以如果有人能为我提供这种情况的解决方案,我将不胜感激!我使用 MS SQL Server 2008 作为 DBMS。提前致谢!

4

1 回答 1

1

我认为这不一定是触发器

这听起来像是一组 3 个唯一索引。

在对上创建唯一索引:

day, lecturer
day, batch
day, hall
于 2012-08-15T15:04:18.547 回答