触发为约束

时间:2015-04-16 12:57:45

标签: sql sql-server sql-server-2008

我有两张桌子 -

Create Table "User" (Name, DateofBirth, CategoryId(FK))

Create Table Category(CategoryId(PK), MinimumAge)

每个用户都分配了一个cateogry。我正在尝试创建规则/触发器约束 强制执行该类别的人必须达到该类别的最低年龄,

有什么建议吗?感谢

1 个答案:

答案 0 :(得分:1)

您可以使用CHECK CONSTRAINT使用用户定义的函数根据类别查找年龄范围/最小值

UDF应根据逻辑

的通过/失败返回1或0

例如

check (dbo.IsAboveMinAge(dob, categoryId) = 1)

IsAboveMinAge根据传递的dob计算当前年龄,并与SELECT MinimumAge FROM Category where CategoryID = categoryId返回值进行比较)