假设我有带有列的表 TabA :
col1-主键(但不包括身份)
col2-外键
col3-具有唯一约束
col4-具有检查约束
col5-具有NOT NULL约束
此外, TabA 具有2个触发器:
INSTEAD OF INSERT-这个取消插入到 TabA中 (当然),但是在它自己的代码中,将新行插入 TabA中 。保证此新行中所有列的值正确
插入后-此仅打印字符串
现在,我准备将新行插入 TabA (INSERT INTO TabA VALUES(…))。显然,我们必须期待一些事件:
必须检查col1的值的唯一性和NOT NULL(主键)
必须检查col2的值是否与父母表格(外键)相符
必须检查col3的值是否唯一
必须对照检查约束检查col4的值
必须为col5的值检查NOT NULL
必须执行INSTEAD OF触发器
必须执行AFTER触发器
我想要的是重新排序此列表(1-7),以使数字1出现在首先发生的事件上,2 =发生在第二发生的事件上,…,以及发生在最后一个事件上的7。
另外,如果事件X产生错误(例如,col5 = NULL)-这是否意味着事件X + 1,X + 2 .. 不会 发生?
谢谢您的帮助!
通过按照触发器中的print语句所述设置测试表并仅尝试插入无效值,就可以轻松地进行测试。这样做给了我
据我所知,保证1,7和8的顺序。其余都是任意的。任何错误将停止后续步骤。