兩張使用者表,修改其中一張表a的密碼字段,另一張表b也同時更新字段。
同理的,修改表b的密碼字段,另一張表a也同時更新字段。
分別為兩張表建立觸發器,這樣就會出現,兩個觸發器會陷入死迴圈,處理方法如下:
create table [t_users](
[yhbm] [varchar](20) not null,
[pwd] [varchar](20) null)
create table [dbo].[tusers](
[usersname] [varchar](50) not null,
[userspwd] [varchar](50) not null)
create trigger [dbo].[truuser2]
on [dbo].[tusers] --在tuser表中建立觸發器
for update --為什麼事件觸發
as --事件觸發後所要做的事情
if update(userspwd)
begin
alter table t_users disable trigger [truuser] ---關閉t_users的觸發器
update dbo.t_users
set pwd=i.userspwd
from dbo.t_users br , deleted d ,inserted i --deleted和inserted臨時表
where br.yhbm=d. usersname
alter table t_users enable trigger [truuser]
end
alter trigger [dbo].[truuser]
on [dbo].[t_users] --在tuser表中建立觸發器
for update --為什麼事件觸發
as --事件觸發後所要做的事情
if update(pwd)
begin
alter table tusers disable trigger [truuser2] --關閉tusers表中的觸發器
update dbo.tusers
set userspwd=i.pwd
from dbo.tusers br , deleted d ,inserted i --deleted和inserted臨時表
where br.usersname=d.yhbm
alter table tusers enable trigger [truuser2]
end
SQL建立DDL觸發器
當伺服器或資料庫中發生資料定義語言 ddl 事件時將被呼叫。如create,alter,drop等操作。如果要執行以下操作,可以使用ddl觸發器 防止對資料庫架構進行更改 希望資料庫中發生某些情況以響應資料庫架構中的更改 要記錄資料庫架構中的更改或事件 use xxhis kf go object ...
建立觸發器
視覺化資料庫工具 對於 microsoft sql server 資料庫,可以在 transact sql 中編寫觸發器,而對於 oracle 資料庫,則可以在 pl sql 中進行編寫。通過指定下列內容建立觸發器 建立觸發器 在 伺服器資源管理器 中,展開 表 資料夾。右擊要在其上建立觸發器的表名...
建立觸發器
create trigger trigger insert test1 on test2 after insert asbegin set nocount on added to prevent extra result sets from interfering with select state...