sql-server - 我们可以在触发器中同时使用而不是和之后吗?
问题描述
我想定义instead of
forinsert
和update
操作,但after
为delete
操作。可能吗?或者,我是否需要为此编写额外的触发器?例如,不能删除任何行。
CREATE TRIGGER test_trigger ON my_table
instead of INSERT,UPDATE for DELETE
AS
BEGIN
.......
END
解决方案
看来您需要 2 个触发器。每个表的每个 DML 操作类型只能创建1 个INSTEAD OF
触发器,尽管可以组合 DML 操作类型,如在本例中,即 INSERT 和 UPDATE。
CREATE TRIGGER test_trigger_instead_of_ins_upd ON my_table
instead of INSERT,UPDATE
AS
BEGIN
.......
END
---------------------------------------------------------
CREATE TRIGGER test_trigger_after_del ON my_table
after DELETE
AS
BEGIN
.......
END
推荐阅读
- r - R在尝试构建饼图时不显示百分比
- python - 读取 3D 数组并将其绘制为像图片一样的 2D,而无需像 np.concatenate 那样从 3D 转换为 2D
- npm - 无法在本地系统上运行克隆项目
- java - 从字符串中提取 gz 值
- ruby - 构建失败(macOS 11.4 使用 ruby-build 20210526)- MacBook Air(M1,2020)- rbenv install 2.xx
- python - .map() 没有用新的字典字符串替换字符串
- r - 仅当使用 mclapply 进行一次以上迭代时,Rstudio 模拟才会在迭代后卡住
- r - 如何使用空格将一列分成两列
- svg - SVG 内联字体大小属性渲染的像素大小与预期大不相同
- javascript - 从 Chrome 扩展程序在外部 iframe 中填写表单数据