码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server 触发器、事务、以及存储过程详解

时间:2019-07-04 17:21:16      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:_id   esb   print   只读   添加用户   定义   trigger   sys   value   

触发器(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 @UserName=@UserName+CONVERT(varchar,@password);
--set @temp=@password/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 触发器、事务、以及存储过程详解

标签:_id   esb   print   只读   添加用户   定义   trigger   sys   value   

原文地址:https://www.cnblogs.com/XiangZiPeng/p/11133528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!