我有一个包含三个表User(userID,Firstname,LastName),Movies(MovieID,MovieName)和UserMovies(MovieID,userID)的数据库。我在User表中也有一个触发器,我希望在Insert之后运行,它确定提供的userID是否已经存在。如果表中存在提供的userID,我该如何忽略触发触发器的插入并开始操作Movies表(我的下一个INSERT命令)?我尝试过使用RETURN
如果存在(选择insert.userID FROM inserted)
返回
但这不适合我。谢谢。
答案 0 :(得分:1)
如果要根据某些条件限制数据插入,则应在before trigger
中执行此操作。在这里,检查user_id是否已经存在。如果是,则可以通过回滚事务来限制在表中插入该数据。
答案 1 :(得分:0)
在触发器功能中引发异常。
RAISERROR ('Error Text', 11, 1);
我不知道在触发器函数中“忽略”插入的另一种方法。由于该函数是由INSERT命令触发的,因此应该发生INSERT或发生错误。
另一种方法是编写一个存储过程,在尝试INSERT之前检查你的状况。