关于insert触发器:比如我有2个表A B 我想当我给A 插入数据的时候,自动为B插插入数据。2个表有相同的 ID 这个字段。
还有就是删除A表中的某调记录的时候 同时也删除B中 ID相同的数据
关于insert触发器:比如我有2个表A B 我想当我给A 插入数据的时候,自动为B插插入数据
答案:2 悬赏:0 手机版
解决时间 2021-03-09 09:19
- 提问者网友:暮烟疏雨之际
- 2021-03-08 17:46
最佳答案
- 五星知识达人网友:逐風
- 2021-03-08 18:10
我想当我给A 插入数据的时候,自动为B插插入数据
ALTER TRIGGER [dbo].[触发器名称] ON [dbo].[A]
FOR Insert
AS
insert into B(id,xx,SubAccount,[user],
class,password,subliuyannum,isParent,contact)
select fduserid as id,fduserid as xx,
fdcontecter,fdlogname as [user],'管理帐号' as class,
fdpwd as password,'1' as subliuyannum ,'1' as isParent,fdcontecter
from inserted
删除A表中的某调记录的时候 同时也删除B中
ALTER TRIGGER [dbo].[trtbusersdelsub] ON [dbo].[A]
FOR DELETe
AS
delete B where id in (select fduserid from deleted )
ALTER TRIGGER [dbo].[触发器名称] ON [dbo].[A]
FOR Insert
AS
insert into B(id,xx,SubAccount,[user],
class,password,subliuyannum,isParent,contact)
select fduserid as id,fduserid as xx,
fdcontecter,fdlogname as [user],'管理帐号' as class,
fdpwd as password,'1' as subliuyannum ,'1' as isParent,fdcontecter
from inserted
删除A表中的某调记录的时候 同时也删除B中
ALTER TRIGGER [dbo].[trtbusersdelsub] ON [dbo].[A]
FOR DELETe
AS
delete B where id in (select fduserid from deleted )
全部回答
- 1楼网友:由着我着迷
- 2021-03-08 18:44
CREATE [OR REPLACE] TRIGGER <触发器名>
BEFORE|AFTER
INSERT|DELETE|UPDATE [OF <列名>] ON <表名>
[FOR EACH ROW]
WHEN (<条件>)
create trigger trig1
after insert of 列名 on B
for each row
when inserting A ;
删除的你也要从新建一个
触发器
--------------------------------------------------------------------------------
创建触发器:
CREATE [OR REPLACE] TRIGGER <触发器名>
BEFORE|AFTER
INSERT|DELETE|UPDATE [OF <列名>] ON <表名>
[FOR EACH ROW]
WHEN (<条件>)
关键字"BEFORE"在操作完成前触发;"AFTER"则是在操作完成后触发;
关键字"FOR EACH ROW"指定触发器每行触发一次.
关键字"OF <列名>" 不写表示对整个表的所有列.
WHEN (<条件>)表达式的值必须为"TRUE".
特殊变量:
:new --为一个引用最新的列值;
:old --为一个引用以前的列值;
这些变量只有在使用了关键字 "FOR EACH ROW"时才存在.且update语句两个都有,而insert只有:new ,delect 只有:old;
使用RAISE_APPLICATION_ERROR
语法:RAISE_APPLICATION_ERROR(错误号(-20000到-20999),消息[,{true|false}]);
抛出用户自定义错误.
如果参数为'TRUE',则错误放在先前的堆栈上.
INSTEAD OF 触发器
INSTEAD OF 触发器主要针对视图(VIEW)将触发的dml语句替换成为触发器中的执行语句,而不执行dml语句.
禁用某个触发器
ALTER TRIGGER <触发器名> DISABLE
重新启用触发器
ALTER TRIGGER <触发器名> ENABLE
禁用所有触发器
ALTER TRIGGER <触发器名> DISABLE ALL TRIGGERS
启用所有触发器
ALTER TRIGGER <触发器名> ENABLE ALL TRIGGERS
删除触发器
DROP TRIGGER <触发器名>
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯