初识存储过程
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’)
标题:初识存储过程
备注:
日期: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’)
相关文章推荐
- 【初识Oracle】⑩存储过程 PROCEDURE
- 初识Mysql存储过程
- mysql存储过程初识
- MySQL:初识存储过程
- 初识PostgreSQL存储过程
- oracel procedure(存储过程初识1)
- Hibernate3调用存储过程用法
- mysql存储过程中使用临时表
- mysql存储过程
- GRIDVIEW中实现上移下移的存储过程
- 自动生成对一个数据表的插入和更新的存储过程
- MS SQL数据库备份和恢复存储过程
- C#存储过程Output返回参数 方法调用类
- 展示如何用证书签名一个存储过程
- mysql存储过程
- SQL SERVER 2000写存储过程出现列名无效的解决方法
- 存储过程中使用函数作为默认参数
- AspNetPager与MSSQL海量分页存储过程结合
- 存储过程返回临时表的问题
- mysql数据库的存储过程(五)