浅谈存储过程和触发器

来源:未知 责任编辑:责任编辑 发表时间:2014-02-02 17:50 点击:
浅谈存储过程和触发器
 
说到存储过程和触发器,其实在以前做机房收费系统的时候就接触到了。但是当时总感觉存储过程和触发器是比较高级的东西,这个系统不用这些东西也可以。于是就一直没有好好研究这块知识。现在看牛腩新闻发布系统,再一次涉及到了这个东东,这才发现,存储过程和触发器并没有想象的那么高深莫测。也许有人会说:那是你没有深入研究。是,我承认,但个人觉得目前我们还没有必要那么深入研究。我们要做的就是:用20%的努力,获得80%的知识。这样就基本上可以满足我们日常的需求了。下面就宏观上说一下存储过程和触发器。
 
什么是存储过程呢?官方是这样定义的,存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。  www.2cto.com  
1、创建存储过程语句如下:
[sql]
createprocedure 存储过程名  
  
@[参数名] [类型],@[参数名][类型]  
  
as  
  
begin  
  
    自定义的功能  
  
end   
2、调用存储过程
exec sp_name [参数名]
3、删除存储过程 
drop proceduresp_name
其实,说白了,存储过程就是一类特殊的函数,只要我们给它合适的参数就可以直接调用,跟调用API函数差不多,唯一不同的就是API函数大部分是别人写的,而存储过程我们一般都是自己写。
 
注意:不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程。
 
那么什么是触发器呢?严格意思上说,触发器就是存储过程,只不过它的执行不是由程序调用,也不是手工启动,而是由事件来触发。  www.2cto.com  
创建语句如下:
[sql] 
CREATE TRIGGER`<databaseName>`.`<triggerName>`  
  
< [ BEFORE |AFTER ] > < [ INSERT | UPDATE | DELETE ] >  
  
ON <tableName>  
  
FOR EACH ROW  
  
BEGIN  
  
--do something  
  
END |  
这时有人不解了,什么叫由事件来触发呢?其实这和botton按钮的点击事件一样,只不过触发器是由Insert、Update、Delete这些动作触发,而botton的点击事件是通过点击的动作来触发的。
 
那么存储过程有哪些优点呢?
 
1、速度快。
在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。也就是说,存储过程在调用前就已经编译好了,所以存储过程能以极快的速度执行。
2、存储过程可以重复使用,可减少数据库开发人员的工作量 。  www.2cto.com  
3. 保证数据的安全性。
通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。 
4、保证数据的完整性。
通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。
 
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Request.ServerVariables 参数大全
  • 执行全文索引时出现权限不足的解决方法
  • 导入excel文件处理流程节点的解决方案
  • 查看sql修改痕迹(SQL Change Tracking on Table)
  • App数据层设计及云存储使用指南
  • PostgreSQL启动过程中的那些事三:加载GUC参数
  • MongoDB安装为Windows服务方法与注意事项
  • Percolator与分布式事务思考(二)
  • 写给MongoDB开发者的50条建议Tip1
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1