您的位置:首页 > 其它

初识存储过程

2011-04-13 17:12 162 查看
=============================================================
标题:初识存储过程
备注:
日期:2011.4.13
姓名:朱铭雷
=============================================================
概念
一组用于完成某种特定功能的多条SQL语句的集合。给我的感觉就像是c语言里面封装一个完成某种功能的函数,里面是多条c语句,可以有参数,返回值,在需要的时候去调用它。
优点(使用存储过程的理由)
1 将复杂的操作封装,易于复用。
2 不同地方使用同一存储过程来完成同一种功能或者操作,可减少错误发生的几率,也就保证了数据的一致性。
3 更改存储过程内部的代码,使用者代码不需改动。这样一来,又可通过对执行某一存储过程的权限限制,减少使用者代码对基础数据的访问,减少讹误,增强安全性。
4 存储过程经编译后存储于数据库,并在首次运行时经过查询优化器的分析优化,因此其运行速度较快,性能更高。
缺陷
1 不同DBMS存储过程语法有所不同,在不同的DBMS之间,存储过程代码的可移植性较差。
2 编写存储过程需要较高的技能,丰富的经验。(这算是缺点吗?)
分类
包括“DBMS提供的存储过程”和“自己编写的存储过程”。系统提供的存储过程通常都非常有用。
创建存储过程
例:(From 《Sams Teach Yourself SQL in 10 Minutes》)
CREATE PROCEDURE NewOrder @cust_id CHAR(10)
AS
-- Declare variable for order number
DECLARE @order_num INTEGER
-- Get current highest order number
SELECT @order_num = MAX(order_num)
FROM Orders
-- Determine next order number
SELECT @order_num = @order_num + 1
-- Insert new order
INSERT INTO Orders(order_num, order_date, cust_id)
VALUES(@order_num, GETDATE(), @cust_id)
-- Return order number
RETURN @order_num;
执行存储过程
EXECUTE语句,例:
EXECUTE NewOrder(’ 1000000001’)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: