我想用条件为SQL Server 2008创建一个INSERT
触发器。
例如,我有一个包含两种类型的事务A和B的事务表。我想在只有A类型的插入事务时触发触发器。
我怎么做?
如果可能的话,我会非常乐意得到这个例子
谢谢
表:
Txn Txn Date
---------------------------
A 2018-08-01 01:05:00
A 2018-08-01 01:05:01
B 2018-08-01 01:05:05
B 2018-08-01 01:05:09
A 2018-08-01 01:05:15
B 2018-08-01 01:05:41
这有点复杂。你需要一个instead of
触发器。
create trigger trig_transactions_type on transactions
instead of insert as
begin
if (not exists (select 1
from inserted i
where type = 'B'
)
)
begin
raiseerror ('Type "B" is required', 10, 1)
rollback transaction;
end;
else
begin
insert into transactions (type, txn_date, . . .)
select type, txn_date, . . .
from inserted;
end;
end;
我有mysql的想法:您可以检查单列上的插入条件如何执行触发器插入新表中的单行示例:
DELIMITER $$
使用test
$$创建触发器TestTrigger
插入testtable
之后每行开始如果NEW.TXN ='A'然后插入testb
(columna,columnb)VALUES(1,'Suresh');万一;结束; $$
DELIMITER;
#测试表结构如下:
CREATE TABLE testtable
(txn
BIGINT(12)DEFAULT'0',txn_date
DATETIME DEFAULT NULL,KEY ind_msisdn
(txn
));
CREATE TABLE testb
(columna
INT(11)DEFAULT NULL,columnb
VARCHAR(30)DEFAULT'');