2012-08-15 67 views
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 

它应该提供一个错误。

我正在使用此表为特定系统创建时间表。我试图通过这个触发器实现的是,如果用户尝试在同一天在不同的记录上分配相同的大厅,讲师或批处理,我想提供一个错误,这显然是一个超额分配。 当谈到触发器时我是一个新手,所以如果有人能够为我提供解决方案,我将非常感激!我正在使用MS SQL Server 2008作为DBMS。 在此先感谢!

回答

1

我认为这不一定是触发器

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

建立在对唯一索引:

day, lecturer 
day, batch 
day, hall 
+0

我想你的意思是唯一的约束。这是代码:http://databases.about.com/od/sqlserver/a/unique.htm – Jim 2012-08-15 15:09:59

+0

哇。正是我想要的!非常感谢! :) – 2012-08-15 15:13:30