⑴ 创建触发器的命令是什么
oracle 的语法
-------------------------------------------------------------------------------------
create or replace trigger 触发器名
before/after 触发事件——可以是update/delete/insert
on 表名/视图名
[for each row]——当省略为语句触发器
[when(触发条件)]——限定条件
begin
触发操作
end;
-----------------------------------------------------------------------------------
instead of 触发器——(只争对视图,不能用before after when,视图没有with check option)
create or replace trigger 触发器名
instead of 触发事件
on 视图名
[for each row]
begin
触发操作
end;
⑵ 创建一个触发器
因为不知道你这个具体情况 所以建议你写两个触发器一个insert 一个delete
create trigger [dbo].[aa_bb] on [dbo].[aa]
for insert
as
insert into bb
select * from inserted
---------------------------------------
create trigger [dbo].[aa_bb] on [dbo].[aa]
for delete
as
delete from a from bb a,inserted b where .....
⑶ SQL中,如何创建一个有条件的触发器
以 delete 触发为例:
createtriggertri_delete
ona--将要进行更改的表名
fordelete--给表删除一条数据的时候触发
as
declare@aavarchar(10)
select@aa=afromdeleted
if@aa='a'--处理的条件
begin
raiserror('错误',16,8)
rollbacktran
end
触发器效果:删除表a数据,如果a列为‘a’,即阻止删除,提示‘错误’
⑷ 怎样创建一个sql的触发器
视图是虚拟表,不能建触发器,只能在基本表上建
⑸ 如何创建我想要的触发器
在score加一个自增的ID作为唯一键
CREATE TRIGGER tr_guake
ON score
FOR INSERT
AS
Declare @id int,@chengji int
set @id=(select max(id) from score)
set @chengji=(select chengji from score where id=@id)
if @chengji<60
Begin
INSERT INTO guake(stu_id,chengji)
select stu_id,chengji from score where id=@id
End
---stu_id char (10) not null primary key, 是主键,但你insert的时候不正确,所以要修改,修改后就可以不要我上面那个ID了. 不过要改一下条件
⑹ 创建一个触发器
create trigger Mytr
on 学生表
for update as
insert into 班级表(班级号)
select 班级号 from inserted
where not exists
(
select 1 from 班级表
where
班级表.班级号= inserted.班级号
)
--请注意,班级表其他字段必须是允许null,如果有not null,请使用默认值
⑺ 触发器的创建
create trigger stu_trg
on student
for update
as
IF(UPDATE([libraryCardNo]))--如果更新了libraryCardNo字段
BEGIN
BEGIN TRAN
update borrowbook set libraryCardNo=inserted.libraryCardNo
IF(@@error <> 0)--如果更新不成功则回滚
BEGIN
ROLLBACK TRAN
END
ELSE
COMMIT TRAN
END
END
⑻ sql如何创建触发器
设:该表的主键为[编号]
create trigger Mytr
on 数据表
for insert,delete
as
if exists(select 1 from inserted)
update 统计表
set 字段=
统计表.字段+a.count
from (select count(1) as count from inserted) a
if exists(select 1 from deleted)
update 统计表
set 字段=
统计表.字段-a.count
from (select count(1) as count from deleted) a
⑼ SQL语句创建触发器
ROLLBACK TRANSACTION
没有对应的BEGIN TRANSACTION
应是BEGIN TRANSACTION
IF 。。。。。
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
END