存储过程讲解

上传人:xzh****18 文档编号:34437030 上传时间:2018-02-24 格式:DOCX 页数:4 大小:17.92KB
返回 下载 相关 举报
存储过程讲解_第1页
第1页 / 共4页
存储过程讲解_第2页
第2页 / 共4页
存储过程讲解_第3页
第3页 / 共4页
存储过程讲解_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《存储过程讲解》由会员分享,可在线阅读,更多相关《存储过程讲解(4页珍藏版)》请在金锄头文库上搜索。

1、存储过程讲解 一、简介:存储过程(Stored Procedure), 是一组为了完成特定功能的 SQL 语句,集经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数,如果该存储过程带有参数来执行它,在 SQL Server 的系列版本中,存储过程分为两类:系统提供的存储过程和用户自定义存储过程。系统 SP,主要存储 master 数据库中,并以 sp_为前缀并且系统存储过程主要是从系统表中获取信息,从而为系统管理员管理 SQL Server。 用户自定义存储过程是由用户创建,并能完成某一特定功能,如:查询用户所需数据信息的存储过程。存储过程具有以下优点1.存储过程允许标准组件式编程(

2、模块化设计)存储过程在被创建以后,可以在程序中被多次调用,而不必重新编写该存储过程的 SQL 语句,而且数据库专业人员可随时对存储过程进行修改,但对应用程序源代码毫无影响。因为应用程序源代码只包含存储过程的调用语句,从而极大地提高了程序的可移植性。2.存储过程能够实现快速的执行速度如果某一操作包含大量的 Transaction-SQL 代码,,或分别被多次执行,那么存储过程要比批处理的执行速度快很多,因为存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析优化,并给出最终被存在系统表中的执行计划,而批处理的 Transaction-SQL 语句在每次运行时都要进行编译和优化,因

3、此速度相对要慢一些。3.存储过程能够减少网络流量对于同一个针对数据数据库对象的操作,如查询修改,如果这一操作所涉及到的 Transaction-SQL语句被组织成一存储过程,那么当在客户计算机上调用该存储过程时,网络中传送的只是该调用语句,否则将是多条 SQL 语句从而大大增加了网络流量降低网络负载。4.存储过程可被作为一种安全机制来充分利用系统管理员通过,对执行某一存储过程的权限进行限制,从而能够实现对相应的数据访问权限的限制。 二、变量I三、流程控制语句(if else | select case | while )Select . CASE 实例DECLARE iRet INT, PKD

4、isp VARCHAR(20)SET iRet = 1Select iRet =CASEWHEN PKDisp = 一 THEN 1WHEN PKDisp = 二 THEN 2WHEN PKDisp = 三 THEN 3WHEN PKDisp = 四 THEN 4WHEN PKDisp = 五 THEN 5ELSE 100END四、存储过程格式创建存储过程Create Proc dbo.存储过程名存储过程参数AS执行语句RETURN执行存储过程GO*/- 变量的声明,sql 里面声明变量时必须在变量前加符号DECLARE I INT- 变量的赋值,变量赋值时变量前必须加 setSET I =

5、30- 声明多个变量DECLARE s varchar(10),a INT- Sql 里 if 语句IF 条件 BEGIN执行语句ENDELSE BEGIN执行语句ENDDECLARE d INTset d = 1 IF d = 1 BEGIN- 打印PRINT 正确ENDELSE BEGINPRINT 错误END- Sql 里的多条件选择语句.DECLARE iRet INT, PKDisp VARCHAR(20)SET iRet = 1Select iRet =CASEWHEN PKDisp = 一 THEN 1WHEN PKDisp = 二 THEN 2WHEN PKDisp = 三 T

6、HEN 3WHEN PKDisp = 四 THEN 4WHEN PKDisp = 五 THEN 5ELSE 100END- 循环语句WHILE 条件 BEGIN 执行语句ENDDECLARE i INTSET i = 1WHILE i1000000 BEGINset i=i+1END- 打印PRINT i- TRUNCATE 删除表中的所有行,而不记录单个行删除操作,不能带条件TRUNCATE TABLE authors- Select INTO 从一个查询的计算结果中创建一个新表。 数据并不返回给客户端,这一点和普通的- Select 不同。 新表的字段具有和 Select 的输出字段相关联

7、(相同)的名字和数据类型。select * into NewTablefrom Uname- Insert INTO Select- 表 ABC 必须存在- 把表 Uname 里面的字段 Username 复制到表 ABCInsert INTO ABC Select Username FROM Uname- 创建临时表Create TABLE #temp(UID int identity(1, 1) PRIMARY KEY,UserName varchar(16),Pwd varchar(50),Age smallint,Sex varchar(6)- 打开临时表Select * from #

8、temp- 存储过程- 要创建存储过程的数据库Use Test- 判断要创建的存储过程名是否存在if Exists(Select name From sysobjects Where name=csp_AddInfo Andtype=P)- 删除存储过程Drop Procedure dbo.csp_AddInfoGo- 创建存储过程Create Proc dbo.csp_AddInfo- 存储过程参数UserName varchar(16),Pwd varchar(50),Age smallint,Sex varchar(6)AS- 存储过程语句体insert into Uname (UserName,Pwd,Age,Sex)values (UserName,Pwd,Age,Sex)RETURN- 执行GO- 执行存储过程EXEC csp_AddInfo Junn.A,123456,20,男

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号