弱弱的问下触发器中for 的用处是什么

xxiaocai 2007-09-05 08:44:20
CREATE TRIGGER trig_outGoods ON dbo.tb_OutStore
FOR insert,delete
AS sql_statement

请问for 的用处是什么
为什么after和instead of都没有呢
...全文
127 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ojuju10 2007-09-05
  • 打赏
  • 举报
回复
AFTER
指定 DML 触发器仅在触发 SQL 语句中指定的所有操作都已成功执行时才被激发。所有的引用级联操作和约束检查也必须在激发此触发器之前成功完成。

如果仅指定 FOR 关键字,则 AFTER 为默认值。

不能对视图定义 AFTER 触发器。

INSTEAD OF
指定 DML 触发器是“代替”SQL 语句执行的,因此其优先级高于触发语句的操作。不能为 DDL 触发器指定 INSTEAD OF。

对于表或视图,每个 INSERT、UPDATE 或 DELETE 语句最多可定义一个 INSTEAD OF 触发器。但是,可以为具有自己的 INSTEAD OF 触发器的多个视图定义视图。

INSTEAD OF 触发器不可以用于使用 WITH CHECK OPTION 的可更新视图。如果将 INSTEAD OF 触发器添加到指定了 WITH CHECK OPTION 的可更新视图中,则 SQL Server 将引发错误。用户须用 ALTER VIEW 删除该选项后才能定义 INSTEAD OF 触发器。
srgcc 2007-09-05
  • 打赏
  • 举报
回复
基本语法:
CREATE TRIGGERtrigger_name
ON {table | name}
[WITH ENCRYPTION]
{FOR | AFTER | INSTEAD OF}
{[DELETE] [,] [UPDATE] [,]}
[WITH APPEND]
[NOT FOR REPLICATION]
AS
sql_statement[....n]

不用after和instead of情况下就要用for.
yrwx001 2007-09-05
  • 打赏
  • 举报
回复
for 跟 after 一樣,都是在紀錄變更以後觸發
instead of 是在紀錄變更之前觸發,它並不取執行原來的sql語句,而去執行觸發器本身所定義的操作

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧