【SQL Server】--存储过程
来源:互联网 发布:万方学术论文数据库 编辑:程序博客网 时间:2024/05/22 06:37
一、什么是存储过程?
定义:
存储过程(Stored Procedure)是在大型数据库中,将常用的或复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,一次编译后再次调用不需要编译,用户通过指定存储过程的名字并给出参数来执行。
分类:
系统存储过程:sp_开头
扩展存储过程:xp_开头
用户自定义存储过程:
推荐命名语法:[proc] [MainTableName] By [FieldName(optional)] [Action]
前缀必须有proc ,存储过程访问的对象,可选字段名是条件子句,最后的动词是执行的任务。例子:procClientRateSelect
注意:不推荐命名为sp_为前缀,因为这样SQL Server会首先查找系统存储过程,会导致运行缓慢
二、一般SQL语句与存储过程的区别
1.提高性能,存储过程只需编译一次,一般SQL执行一次编译一次,可以提高数据库执行速度。
2.封装特性,可以将复杂的数据库操作(增、删、改、查)用存储过程封装起来,与数据库提供的事务结合。
3.可重复使用,减少数据库开发人员工作量。
4.安全性高,只有设定的用户具有存储过程使用权。
三、存储过程实例
1.SQLHelper调用存储过程
<span style="font-size:18px;"> public DataTable test(string procName) { DataTable dt = new DataTable(); cmd = new SqlCommand(procName, GetConn()); cmd.CommandType = CommandType.StoredProcedure; using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { dt.Load(sdr); } return dt; }</span>
主要是把 command命令里面的procName赋值为存储过程名,把cmd.CommandType赋值为CommandType.StoredProcedure即可。
2.存储过程的书写:
<span style="font-size:18px;">SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:王美-- Create date: 2015年2月6日23:11:35-- Description:取出最新10条新闻(所属分类,新闻标题)-- =============================================CREATE PROCEDURE procNewsSelectNewNews -- Add the parameters for the stored procedure hereASBEGIN---选择最上面的10条select top 10 n.id,n.title ,n.createTime ,c.[name] from news n----类别表的id=新闻表里面的id,内连接inner join category c on n.caId=c.id order by n.createTime desc---降序排列ENDGOexec procNewsSelectNewNews</span>
四、后记
对于存储过程,使用的还不是很频繁,对它的感官还不是很立体。如有不妥,还望指正,欢迎交流!
0 0
- SQL SERVER存储过程
- SQL SERVER存储过程
- Sql Server 存储过程
- SQL Server存储过程
- SQL SERVER 存储过程
- SQL Server 存储过程
- SQL Server存储过程
- SQL Server存储过程
- SQL Server 存储过程
- SQL Server 存储过程
- SQL Server 存储过程
- SQL Server 存储过程
- SQL Server 存储过程
- sql server存储过程
- sql server存储过程
- SQL Server存储过程
- SQL Server 存储过程
- sql server 存储过程
- 在Android 2.3 平台下编译CURL 和OpenSSL过程
- 哲学家就餐--互斥锁
- HDU5170 GTY's math problem
- 关于annotation的一些版本的支持问题。
- Linux Socket模型的幽默认识(转载的)
- 【SQL Server】--存储过程
- Maven学习笔记(八)Maven的入门使用—1.编写POM文件
- HDOJ——5170(GTY's math problem)
- 哲学家就餐-信号量
- 分享 如何做到基于NDK的Android应用防破解!
- 制作initramfs/initrd镜像
- Spring使用JTA进行分布式事务管理
- Hibernate中的懒加载原理分析
- 面试题