触发检查逻辑日期更新
Posted
技术标签:
【中文标题】触发检查逻辑日期更新【英文标题】:Trigger to check logic date update 【发布时间】:2014-03-22 15:51:06 【问题描述】:构建员工数据库,我们希望确保数据库不会因雇佣结束日期早于开始日期而错误地更新。我们想使用触发器来阻止更新、抛出错误和回滚。
我知道这是错误的,但这就是我所在的地方:
CREATE TRIGGER EmpLeaveWarn on Employee FOR UPDATE
AS
IF(select End_Date < Start_Date)
BEGIN
RAISERROR ('The End date must come after the Start date')
ROLLBACK TRAN
RETURN
END
GO
对于 Microsoft SQL Server。
提前致谢。
【问题讨论】:
【参考方案1】:不需要触发器,只需使用约束:
alter table EmpLeaveWarn
add constraint check_end_date check (End_Date >= Start_Date);
【讨论】:
【参考方案2】:实现这一目标的最简单方法是使用检查约束,而不是触发器:
ALTER TABLE Employee ADD CONSTRAINT Employee_Date_Check CHECK ( End_Date >= Start_Date)
【讨论】:
以上是关于触发检查逻辑日期更新的主要内容,如果未能解决你的问题,请参考以下文章