我有一个这样的表结构:
create table status_master
(
Name varchar(40)
status varchar(10)
)
如果状态列值更新值,我需要为状态列创建触发器
如果失败,则触发器调用一个插入命令,例如:
insert into temp value('s',s's')
请问有人能给我解决这个问题的想法吗?
不确定您真正想要实现什么 - 但在 SQL Server 中,您有两种类型的触发器:
-
AFTER在 INSERT、UPDATE、DELETE 之后触发的触发器
-
代替可以捕获操作(INSERT、UPDATE、DELETE)并执行某些操作的触发器
SQL Server 没有其他 RDBMS 所具有的 BEFORE INSERT/UPDATE/DELETE 触发器。
您可以有任意数量的 AFTER 触发器,但每个操作(INSERT、UPDATE、DELETE)只能有一个 INSTEAD OF 触发器。
更常见的情况是 AFTER 触发器,例如:
CREATE TRIGGER trgCheckInsertedValues
ON status_master
AFTER INSERT
AS
BEGIN
INSERT INTO dbo.temp(field1, field2, field3)
SELECT i.Name, i.Status
FROM inserted i
WHERE i.Status = 'FAIL'
END
在这里,我正在检查“插入”伪表,其中包含插入表中的所有行,对于包含“status = FAIL”的每一行,您将向“临时”表插入一些字段。
再次 - 不确定你真正想要的细节 - 但这将是如何在 SQL Server T-SQL 代码中执行此操作的粗略概述。
Marc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)