存储过程优点和用法
来源:互联网 发布:京卡互助服务卡 知乎 编辑:程序博客网 时间:2024/06/04 18:59
存储过程的优点:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权
1.用户自定义的存储过程,这是我们所指的存储过程
常用格式
Create procedure procedue_name
[@parameter data_type][output]
[with]{recompile|encryption}
as
sql_statement
解释:
output:表示此参数是可传回的
with {recompile|encryption}
recompile:表示每次执行此存储过程时都重新编译一次
encryption:所创建的存储过程的内容会被加密
例子:
表students的内容如下
编号 学生名 成绩
001 张三 30
002 李四 52
实例1:查询表students的内容的存储过程
create proc query_students
as
select * from students
go
exec query_student
实例2:加入一笔记录到表students,并查询此表中所有student的总成绩
Create proc insert_student
@param1 char(10),@param2 varchar(20),@param3 money,@param4 money output
with encryption ---------加密
as
insert book(编号,学生名,成绩) Values(@param1,@param2,@param3)
select @param4=成绩 from book
go
执行例子:
declare @total_price money
exec insert_student '003','王五',100,@total_price
print '总成绩为'+convert(varchar,@total_price)
go
存储过程的3种传回值:
1.以Return传回整数
2.以output格式传回参数
3.Recordset
传回值的区别:
output和return都可在批次程式中用变量接收,而recordset则传回到执行批次的客户端中
实例3:设有两个表为Product,Order,其表内容如下:
Product
产品编号 产品名称 客户订数
001 钢笔 30
002 毛笔 50
003 铅笔 100
Order
产品编号 客户名 客户订金
001 南山区 $30
002 罗湖区 $50
003 宝安区 $4
请实现按编号为连接条件,将两个表连接成一个临时表,该表只含编号.产品名.客户名.订金.总金额,
总金额=订金*订数,临时表放在存储过程中
代码如下:
Create proc temp_sale
as
select a.产品编号,a.产品名称,b.客户名,b.客户订金,a.客户订数* b.客户订金 as总金额
into #temptable from Product a inner join Order b on a.产品编号=b.产品编号
if @@error=0
print 'Good'
else
print 'Fail'
go
- 存储过程优点和用法
- 存储过程优点和缺点
- 存储过程优点和缺点
- 存储过程优点和缺点
- 存储过程的优点和不足
- 存储过程的优点和缺点
- 存储过程的优点和缺点
- 存储过程的优点
- 存储过程的优点
- 存储过程的优点
- 存储过程的优点
- 存储过程的优点
- 存储过程的优点
- 存储过程的优点
- 存储过程的优点:
- 存储过程的优点
- 存储过程的优点
- 存储过程的优点
- 使用Zoundry离线编辑CSDN博客
- 使用Zoundry离线编辑博客
- 让网页自动滚屏
- VC8建立的MFC程序失去XP风格的真正原因
- ubuntu设置ip和dns
- 存储过程优点和用法
- boost开始用cmake
- [Windows编程] 使用API函数GetProcAddress的注意事项
- Tomcat服务器不能打开http://localhost:8080安装测试页面
- 男人必看
- 计划在C++建立仿Erlang式的分布式并行机制
- 启示
- 使用jQuery.pager.js进行无刷新分页(当然想带刷新的话更简单)
- 四月,又是四月