创建触发器以限制在特定日期插入记录

时间:2012-08-15 14:59:50

标签: sql sql-server database triggers

我有一个数据库表如下:

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

我想为此表创建一个触发器,它将限制在特定日期插入相同的Batch Name,Hall Name和OR Lecturer名称。 例如:如果用户插入,

**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 

它应该提供错误。

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

1 个答案:

答案 0 :(得分:1)

我认为这不一定是触发器

这听起来像一组3个独特的索引。

在对上创建唯一索引:

day, lecturer
day, batch
day, hall