SQL Server 触发器和事务

一、触发器

1. 定义

--基本语法
create trigger Trigger_Name
on TableName for type --type:insert,update,delete 
as
--执行逻辑

2. insert 触发器获取当前值

create trigger Member_Inserts
on Member for insert
as
declare @id varchar(36)
select @id = id from inserted;
insert into Member(ID,Sex) values(@id+'insert',0);

3.update 触发器

update 触发器获取修改前的值和修改后的值;update操作等于先删除记录,再插入新的记录

create trigger Member_Updates
on Member for update
as
declare @idnew varchar(36);
declare @idold varchar(36);
select @idnew = id from inserted;--inserted在修改时存放的新值的临时表
select @idold = id from deleted;--deleted在修改时存放的旧值的临时表
insert into Member(ID,Sex) values(@idnew+'new',0);
insert into Member(ID,Sex) values(@idold+'old',0);

二、 事务

1. 定义

--基础语法
begin tran
    if(@@ERROR <> 0) 
        begin
            rollback tran;
        end
commit tran
begin tran

update Members set Author = 'System'
--此处引发异常
update Members set Status = 'a'

if(@@ERROR <> 0) 
rollback tran

commit    tran

猜你喜欢

转载自www.cnblogs.com/haosit/p/10766566.html
今日推荐