SQL Server 触发器事务以及存储过程详解
Posted xiangzipeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server 触发器事务以及存储过程详解相关的知识,希望对你有一定的参考价值。
触发器(trigger)
在使用触发器的同时一般会牵扯到两张表,这两张表只读且是虚拟的表一个是inserted(增加表)另外一个是deleted(删除表)
这两张表的结果总是与被改触发器应用的表的结构相同。当触发器完工后,这两张表就会被删除inseted是存插入和修改的数据,deleted则是存储
删除的的数据
语法: create trigger tgr_name(触发器名称)
on table_name(表名)
with encrypion --加密触发器
for update(insert、delete等)
as
Transact-SQL( 一些SQL语句、类似于下面这这串代码)
--定义变量 declare @password varchar(20),@UserName varchar(20), @temp int,@birthday datetime; --在 inserted(虚拟表)表中查询已经插入的记录信息 select @password=password,@UserName=UserName,@birthday=Birthday,@temp=Gender from inserted; -- set @[email protected]+CONVERT(varchar,@password); --set @[email protected]/2; insert into SYS_Users(UserName,Password,Gender,Birthday) values(@UserName,@password,@temp,@birthday); --打印信息提示成功 print ‘添加用户成功‘
删除触发器T-SQL语句备份解析
例子: SYS_Users 表名 .‘U‘指类型表
as print ‘备份数据库中.......‘; if(OBJECT_ID(‘SYS_Users‘,‘U‘)is not null) --存在SYS_Users 表,直接插入数据 insert into SYS_Users select UserName,[Password],Gender,Birthday,CreateDate,IsDelete from deleted else --不存在classesBackup创建再插入 select * into SYS_Users1 from deleted; print ‘备份数据成功!‘;
insert into SYS_Users select UserName,[Password],Gender,Birthday,CreateDate,IsDelete from deleted
上面这串代码表示在 SYS_Users 插入 deleted 的信息,也就是删除的的数据从而达到了备份的效果
select * into SYS_Users1 from deleted;
上面这串语句表示 创建一张和deleted数据结构相同的新表,表的名称为 SYS_Users1,并且将deleted里面的数据添加到 SYS_User1表中
以上是关于SQL Server 触发器事务以及存储过程详解的主要内容,如果未能解决你的问题,请参考以下文章
数据库基础详解:存储过程、视图、游标、SQL语句优化以及索引