数据库中的触发器,索引 ,事务
admin
2023-05-20 17:22:37
0

一.触发器

 触发器是一种实施复杂数据完整性的特殊存储过程,在对表或视图执行update、insert或delete语句时自动触发执行,以防止对数据进行不正确、未授权或不一致的参数。

/*创建触发器*/
creat [temp|temporary] trigger name
[before|after] [insert|update|delete of columns] on table
begin
SQL语句
end;

  触发器能够维持两个表间的参照完整性,就像外键一样。外键执行这个任务的效率更高,因为它们在数据改变之前被测试,而不像触发器在数据改变后才触发。


二.索引

(1)定义:

  1. 索引是数据库的对象之一,索引是为了加速对表中数据行的检索而创建的一种分散的一种存储结构。

    索引是针对一个表而建立的,它是由数据页面以外的索引页面组成的 

create unique clustered index book_id_index--惟一性聚簇索引
on book(book_id asc)
with 
fillfactor=50 /*填充因子50%*/


(2)索引的分类

  1. 聚簇索引

    数据表的物理顺序和索引表的顺序相同,它根据表中的一列或多列值的组合排列记录

create unique clustered index book_id_index--惟一性聚簇索引
on book(book_id asc)
with 
fillfactor=50 /*填充因子50%*/

b. 非聚簇索引

create nonclustered index student_course_index
on student_course(student_id asc,course_id asc)
with 
fillfactor=50

三.事务

(1)定义:

  事务是指一个操作序列,这些操作序列要么都被执行,要么都不被执行,它是一个不可分割的工作单元。

(2)语法步骤:

  1. 事务开始:BEGIN TRANSACTION 

  2. 事务提交:COMMIT TRANSACTION 

  3. 事务回滚:ROLLBACK TRANSACTION 

  4. 判断某条语句执行是否出错:全局变量@@ERROR; 

    @@ERROR只能判断当前一条T-SQL语句执行是否有错,为了判断事务中所有T-SQL语句是否有错,我们需要对错误进行累计; 例:SET @errorSum=@errorSum+@@error


四.存储过程

(1)定义:

  存储过程是一系列预先编辑好的、能实现特定数据操作功能的SQL代码集。它与特定的数据库相关联,存储在SQL Server 服务器上。

(2)存储过程的好处:

  1. 重复使用。存储过程可以重复使用,从而减少数据库开发人员的工作量

  2. 提高性能。存储过程在创建的时候就进行了编译,将来使用的时候就不用再编译。一般的SQL语句使用一次就编译一次,所以使用存储过程提高了效率

  3. 减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此减低了网络传输的运输量

  4. 安全性。参数化的存储过程可以防止SQL注入***,而且可以将Grant、Deny、以及Revoke权限应用于存储过程

  定义一个存储过程:

create proc spAddStudents
  @name  nvarchar(50)=null
  as
  begin transaction --事务
  insert into [StudentInfo].[dbo].[Students]
  (Name)
  values
  (@name)
  if @@ERROR<>0
  begin
  rollback tran
  return
  end

创建一个实现加法计算并将运算结果作为输出参数的存储过程

 create proc spAdd
  @value1 int,
  @value2 int,
  @result int output
  as
  select @result=@value1+@value2
  go

执行spAdd存储过程

declare @value1 int
  declare @value2 int
  declare @result int
  set @value1=1
  set @value2=1
  exec spAdd @value1,@value2,@result output
  print convert(char(5),@value1) +'+'+convert(char(5),@value2) +'='+ convert(char(5),@result)

参考:http://www.xuebuyuan.com/2041347.html

相关内容

热门资讯

坚定不移沿着习近平总书记指引的... 5月8日,淅川丹江小三峡碧水蜿蜒、青山环抱,峰峦叠翠、云雾轻笼,尽显生态之美。 张峰 摄●黄河干流(...
打响“河南服务”品牌丨一颗柠檬... 初夏时节,四川省安岳县通贤镇的柠檬果园里,枝叶繁茂、幼果缀枝。陆海燕正带着村民穿梭田间,为这一季的收...
离境退税2.0版政策上线 境外... 今天(18日),我国离境退税2.0版政策正式上线,以后境外旅客来华购物办理退税会更方便。首先是退税办...
习近平就推动哲学社会科学高质量... 习近平就推动哲学社会科学高质量发展作出重要指示强调加快构建中国哲学社会科学自主知识体系更好回答中国之...
河南多条高速采取管制措施 中央气象台5月18日6时继续发布暴雨黄色预警:预计,5月18日8时至19日8时,华南中西部沿海、西南...
全国零担物流30强 8豫企上榜 5月13日,物流进化发布最新年度零担行业榜单。在零担30强、全网快运10强、区域零担25强、大票零担...
坚定不移沿着习近平总书记指引的... “五一”假期,游客在只有河南·戏剧幻城观赏游玩。 河南日报全媒体记者 聂冬晗 摄●2025年,全省接...
微改革一线调研丨医教结合破解儿... “以前放学,他总是打不起精神,蔫蔫的。现在大不一样,前几天吃完晚饭,居然主动拉着我下楼散步。”5月9...
坚定不移沿着习近平总书记指引的... 田铺大塆美丽景色。 新县县委宣传部供图大别山层峦叠翠,古村落文脉悠长。5月12日清晨,新县田铺乡田铺...
千年古都的流量密码 ——“安阳... 【核心提示】2026河南省文化旅游发展大会将于5月22日至23日在安阳市召开。作为中国八大古都之一、...