初识存储过程

=============================================================

标题:初识存储过程

备注:

日期: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’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值