存储过程 VS 触发器(转载的)

 SQL   Server   中的存储过程与其它编程语言中的过程类似,原因是存储过程可以:  
1   接受输入参数并以输出参数的形式将多个值返回至调用过程或批处理
2   包含执行数据库操作(包括调用其它过程)的编程语言  
3   向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因)  

使用   SQL   Server   中的存储过程而不使用存储在客户计算机本地的   Transact-SQL   程序的优势有:  

1   允许模块化程序设计。  
  只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程   可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。

2   允许更快执行。  
如果某操作需要大量   Transact-SQL   代码或需重复执行,存储过程将比   Transact-SQL   批代码的执行要快。首次执行时将对其进行分析和优化,并在内存高速缓存中保留存储过程的编译版本,以便以后使用。这意味着每次使用存储过程时,无需重新分析和重新优化,从而缩短了执行时间。  

3   减少网络流量。  
一个需要数百行   Transact-SQL   代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。

4   可作为安全机制使用。  
即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。

    而触发器和约束是用来强制业务规则和数据完整性,触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效。唤醒调用触发器以响应   INSERT、UPDATE   或   DELETE   语句。触发器可以查询其它表,并可以包含复杂的   Transact-SQL   语句。
   
触发器的优点如下:  

1   触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。

2   触发器可以强制比用   CHECK   约束定义的约束更为复杂的约束。  
与   CHECK   约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的   SELECT   比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。

3   触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。

4   一个表中的多个同类触发器(INSERT、UPDATE   或   DELETE)允许采取多个不同的对策以响应同一个修改语句。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值