SQL 2008 觸發器的使用

delete

if (object_id('tgr_client_delete', 'tr') is not null)
    drop trigger tgr_client_delete
go
create trigger tgr_client_delete
on clientinfo
    for delete --刪除觸發
as
    --定義變量
    declare @class varchar(255), @name varchar(255);
    --在deleted表中查詢已經刪除記錄信息
    select @class = clientclass,@name = clientname from deleted;
    if @class=N'科室'
 begin
  if object_id(@name,N'U') is not null
  begin
   execute('drop table
'+@name
)
  end
 end   
go
--插入數據
insert into clientinfo(ip,clientname,clientclass,flag) values('1.1.1.1','中國','科室',0)

update

if (object_id('tgr_client_update', 'tr') is not null)
    drop trigger tgr_client_update
go
create trigger tgr_client_update
on clientinfo
    for update --更新觸發
as
    --定義變量
    declare @class varchar(255), @newname varchar(255),@oldname varchar(255);
 
    select @class = clientclass,@oldname = clientname from deleted;
    if @class=N'科室'
 begin
  if object_id(@oldname,N'U') is not null
  begin
   select @newname=clientname from inserted
   execute sp_rename @oldname,@newname 
  end
 end   
go
--插入數據
insert into clientinfo(ip,clientname,clientclass,flag) values('1.1.1.1','中國','科室',0)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章