在SQL Server中,Instead Of
触发了什么?
答案 0 :(得分:6)
什么是“而不是”触发器?
在以前版本的SQL Server中, 触发器是代码的一部分 被附加到表并执行 预定义后自动 更新发生在指定的 表。这些当然仍然存在于 SQL Server 2000及更高版本。 而不是触发器 附在一张类似的桌子上 方式,但他们内部的代码是 执行代替原文 更新声明。
答案 1 :(得分:1)
而不是触发器实际上非常酷。在过去,我在“只读”视图中使用了触发器而不是触发器,使其表现得像一个表。
这实际上非常酷。
如果T-SQL不是您的优势之一,您甚至可以在.NET中编写这些触发器。
答案 2 :(得分:0)
触发器主要用于强制执行业务约束。可以按以下顺序实现业务约束:实体完整性(主/唯一密钥),域完整性(检查约束),参照完整性(外键)和最终触发器。触发器用于实施复杂的业务约束。
触发器类似于存储过程,它们会根据数据操作操作自动执行。 “而不是触发器”用于处理我们想要自己处理的数据操作。而不是INSERT
,UPDATE
,DELETE
写在表格上以研究数据并自己采取必要的行动。
EG。如果您不希望在表上发生DELETE
并希望监视正在尝试删除表中数据的用户。我们可以编写INSTEAD OF TRIGGER
并将currentuser
信息写入Audit表。
EG。如果要为用户操作引发自定义消息。在考试时间表中,如果用户试图在周末进行考试,我们可以发出“这是周末休息”的自定义消息
EG。如果我们在多个表上定义了一个视图并且在其上尝试了一个插入,我们就可以使用触发器来执行基表中相应的插入。