检查2列的约束

时间:2012-10-24 14:32:54

标签: sql-server-2008

任何人都可以帮助我在桌子上写一个触发器,  场景是这样的 我有一个名为person的表,列为col1和col2,

Person
col1 |  col2
0    |  1
1    |  0
2    |  3
3    |  1
4    |  2
5    |  3

这些列col1,col2值依赖于另一个表员工列col3 col4

Employee
col3 | col4
0    | 1
1    | 0
2    | 1
3    | 3
4    | 0
5    | 3
6    | 1

现在如果col1和col2值的组合(例如,员工表中存在0,1来自员工表,则不更新人员表中的列col1和col2,如果col1和col2值为2,3则不存在在employee表中,所以在这种情况下,如果列col1和col2上有任何更新,只需打印一条消息

1 个答案:

答案 0 :(得分:1)

这有味道。基于您的问题,似乎您正在尝试创建用于维护表之间关系的触发器。如果是这种情况,您应该考虑创建复合外键而不是使用触发器。这篇文章提供了一个创建复合键的好例子:Creating a composite foreign key in SQL Server 2008

根据我的经验,Person / Employee表通常具有1:0..1的关系。在这种情况下,您的Person表将具有主键;在你的情况下,密钥将是复合的。 employee表将拥有它自己的主键以及引用Person表的复合外键。