那一年在北国遇到了你牛腩--触发器与存储过程
来源:互联网 发布:什么是脚本的软件 编辑:程序博客网 时间:2024/05/01 17:10
有些人早就听说,只是一直素未谋面,千呼万唤始出来还犹抱琵琶半遮面,害羞的小姑凉。
在机房收费系统个人重构时体验了存储过程的魅力,当时最直接的体会就是它封装了SQL语句,包括了增删改查。
当遇到了牛腩新闻发布系统,遇上了触发器时,敲下代码:
USE [newssystem]GO/****** Object: Trigger [dbo].[trigCategoryDelete] Script Date: 12/08/2014 16:13:28 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:黎卓玲-- Create date: 2014-12-08 15:56-- Description:删除类别触发器-- =============================================ALTER TRIGGER [dbo].[trigCategoryDelete] --触发器的名称(命名规范) ON [dbo].[category] --ON后面写的是针对那张表进行触发器的创建 AFTER DELETE --对表的三种操作INSERT,DELETE,UPDATE AS BEGIN--删除后会放在一张临时的表中Delete news where caId=(select id from deleted) --从中选出所有的删除记录END
哇哦,在哪在哪曾静沧海过如此相似的你。哦,想起了有个名字叫存过过程:
USE [newssystem]GO/****** Object: StoredProcedure [dbo].[news_delete] Script Date: 01/03/2015 16:57:52 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:黎卓玲-- Create date: 2014-12-10 16:02:50-- Description:删除新闻-- =============================================ALTER PROCEDURE [dbo].[news_delete]@id int --根据ID删除ASBEGIN --先删除该新闻下的评论(也可以用触发器) delete comment where newsId =@id --再删除新闻本身 delete news where id =@id END
可见,触发器与存储过程很类似,都是SQL语句集,在大型的数据库中两者都起到非常重要的作用。从本质来说触发器是一种特殊的存储过程,在特定的语言事件中发生时自动执行。
简单来说存储过程,一个恰当不恰当例子相当于一个存放水果的盘子,里面放着各种招待客人用的水果。存储过程模块化的程序设计,提高了代码可用性和开发效率、运行效率。
触发器实现主键和外键所不能保证的复杂的参照完整性和数据一致性,实现级联运行即对数据库中相关的表进行级联修改、存储过程的调用。
不同的是触发器不能执行EXECUTE语句的调用。触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。
对于触发器与存储过程的学习与运用还有待于进一步的深入,希望大家多多指导相互学习!
0 0
- 那一年在北国遇到了你牛腩--触发器与存储过程
- 那一年在北国遇到了你牛腩--CSS
- 那一年在北国遇到了你—牛腩新闻发布系统总结
- 那一年在北国遇见了你--牛腩:浅入浅出SQL注入
- 存储过程与触发器
- 存储过程与触发器
- 触发器与存储过程
- 存储过程与触发器
- 存储过程与触发器
- 触发器与存储过程
- 存储过程与触发器
- 存储过程与触发器
- 存储过程与触发器
- 在SQL中存储过程与触发器的小区别!
- 触发器简介&触发器与存储过程区别
- asa 存储过程与触发器
- Oracle触发器与存储过程
- SQL存储过程与触发器
- struct timeval结构体
- P2P系统,一致性哈希和DHT
- <a 的CSS惯例
- C/C++返回内部静态成员的陷阱
- 使用log4j的时候如何输出printStackTrace()的堆栈信息
- 那一年在北国遇到了你牛腩--触发器与存储过程
- 史上最详细的织梦DedeCMS问答伪静态规则
- spring中配置log4j
- MinGW gcc 生成动态链接库 dll 的一些问题汇总
- 大神博客libnids和pop3以及http协议解析网址
- 计算机内存rom与ram的区别
- 【wp8.1学习入门】windows phone8.1运行时
- 织梦模板怎么修改tags标签字数限制
- 使用火狐浏览器,经常出现打开新的页面卡死