建立觸發器

2021-10-01 15:56:06 字數 1576 閱讀 7831

create trigger trigger_insert_test1

on test2

after insert

asbegin

– set nocount on added to prevent extra result sets from

– interfering with select statements.

set nocount on;

insert into test1 select 『y』,『o』 from test2 where a=『c』 ##如果不加限制條件的話,會複製相同的行數到test1

– insert statements for trigger here

endgo

select * from test1

select * from test2

insert into test2 select 『c』,'5

在xs表上建立no_insert觸發器,禁止新增記錄

create trigger no_insert

on xs

after insert

asbegin

raiserror(『xs表不允許插入記錄』,1,1);

rollback transaction

end在xs表上建立乙個delete觸發器xs_del,要求返回被刪除的記錄

create trigger xs_del

on xs

after delete

asbegin

select 學號 as 被刪除學生記錄,姓名 from deleted

enddelete from xs where 學號=123

在xs表上建立乙個update觸發器xs_update,要求返回被刪除的記錄

create trigger xs_update

on xs

after update

asbegin

select 姓名 as 更新後的姓名,學號 from inserted

select 姓名 as 更新前的姓名,學號 from deleted

end在xs表上建立乙個instead觸發器xs_instead,要求在插入記錄時,如果總學分大於30,就拒絕插入,提示『總學分不符合要求』

create trigger xs_instead

on xs

instead of insert

asbegin declare @stu_credits int;

select @stu_credits=(select 總學分 from inserted)

if @stu_credits>30

select 『總學分不符合要求』 as 失敗原因

end在xs表上建立safty觸發器,拒絕使用者對資料庫中的表進行刪除和更新操作

create trigger safty

on database

for drop_table,after_table

asbegin

print 『當前資料庫禁止更改刪除操作』

rollback transaction

end

建立觸發器

視覺化資料庫工具 對於 microsoft sql server 資料庫,可以在 transact sql 中編寫觸發器,而對於 oracle 資料庫,則可以在 pl sql 中進行編寫。通過指定下列內容建立觸發器 建立觸發器 在 伺服器資源管理器 中,展開 表 資料夾。右擊要在其上建立觸發器的表名...

建立觸發器

create or replace trigger tg student after insert or update or delete on student foreach row declare 定義變數 begin 記錄日誌的程式 操作型別 case when inserting then ...

my sql 觸發器 mysql建立觸發器

首先,我們來了解一下什麼是觸發器,觸發器,就是在對一張表資料進行增 insert 刪 delete 改 update 的時候,為了保持資料的一致性,對別的表也要進行相應的資料修改。我們都知道mysql最後事務提交後,資料是會儲存到磁碟上的,那麼每次在insert,delete,update時候舊資料...