SQL---存储过程---存储过程编写案例
存储过程的创建和调用演示
1.不带参数的存储过程的创建
create procedure PRO_With_No_Param
as
Begin --begin可省略
select * from sc
end --end可省略
--调用
exec PRO_With_No_Param
2.带参数的存储过程的创建
create procedure PRO_With_Param
(
@Sno char(5),
@Cno char(1)
)
as
Begin
select * from SC where Sno=@Sno and Cno=@Cno
end
--调用
exec PRO_With_Param ]09002','2'
3.带一个参数的多表联合查询
create procedure PRO_Query_Double_Table
(
@Sname_IN char(6)
)
as
begin
select Sname,Ssex,Sage,Cno,Grade from STU,SCTU where STU.Sno=SCTU.sno and Sname=@Sname_IN
--调用
exec PRO_Query_Double_Table '222'
4.创建一个插入表的存储过程
create procedure PRO_Insert
(
@Sno_IN char(5),
@Cno_IN char(5),
@Grade_IN int
)
as
begin
insert into SC (Sno,Cno,Grage) values (@Sno_IN,@Cno_IN,@Grade_IN)
end
--调用
exec PRO_Insert '0900','2',2
5.默认参数的存储过程
create procedure PROC_With_Default_Param
(
@Sno_IN char(5)='0900',
@Cno_IN char(1)='2'
)
as
begin
select * from SC where SC where Sno=@Sno_IN and Cno=@Cno_IN
end
--调用:这种存储过程有三种方式进行调用1.全部使用默认值,2.部分使用默认值。3.全部使用输入值
exec PROC_With_Default_Param
exec PROC_With_Default_Param '09'
exec PROC_With_Default_Param '09','1'
6.使用带输出参数的存储过程
create procedure PROC_With_Out_Param
(
@Grade_OUT int output
)
as
begin
select @Grade_OUT=Grade from SC where Sno='0900' and Cno='2'
end Declare @Grade_Result int --声明一个变量来存储输出参数输出的值
exec PROC_With_Out_Param @Grade_OUT=@Grade_Result output
print @Grade_Result
--写控制逻辑
if @Grade_Result>=90
print 'a'
elseif (@Grade_Result<90 and @Grade_Result>85)
print '2'
else
print '22'
7.使用一个值来保存执行后的状态
create procedure PROC_With_Status_Value
(
@Sno_IN char(5)
)
as
begin
select * from SC where Sno=@Sno_IN
end
--使用记录状态的执行
declare @status int
exec @status=PROC_With_Status_Value @Sno_IN='00'
print @status if(@status=0)
print '1'
else
print '0'
8.输入输出参数的存储过程
create procedure PROC_With_In_And_Out_Param
(
@Sno_IN char(5),
@Grade_Out int output
) as
begin
select @Grade_Out=Grade from SC where Sno=@Sno_IN
end
--执行存储过程
declare @Grade_Result int
exec PROC_With_In_And_Out_Param @Sno_IN='0900',@Grade_Out=@Grade_Reault output
print @Grade_Result
SQL---存储过程---存储过程编写案例的更多相关文章
- SQL Server在存储过程中编写事务处理代码的三种方法
SQL Server中数据库事务处理是相当有用的,鉴于很多SQL初学者编写的事务处理代码存往往存在漏洞,本文我们介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码.希望能够对您有所 ...
- Sql 中存储过程详细案例
转自:http://www.cnblogs.com/yank/p/4235609.html 概念 存储过程(Stored Procedure):已预编译为一个可执行过程的一个或多个SQL语句. 创建存 ...
- SQL Server 存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...
- [转]SQL Server 存储过程 一些常用用法(事物、异常捕捉、循环)
最新更新请访问: http://denghejun.github.io Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中 ...
- java 调用 sql server存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...
- SQL Server 存储过程(转)
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...
- SQL Server存储过程Return、output参数及使用技巧
SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...
- 11月16日《奥威Power-BI基于SQL的存储过程及自定义SQL脚本制作报表》腾讯课堂开课啦
上周的课程<奥威Power-BI vs微软Power BI>带同学们全面认识了两个Power-BI的使用情况,同学们已经迫不及待想知道这周的学习内容了吧!这周的课程关键词—— ...
- SQL Server 存储过程(转载)
SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这 ...
- SQL Server存储过程(转载)
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...
随机推荐
- JS获取fileupload文件全路径
来自:http://hi.baidu.com/libos88/item/c61ab8bae472afe34ec7fdfb 最近在写个小网站,用到了fileupload控件来上传文件.因为程序的某些需要 ...
- win10 uwp 如何拖动一个TextBlock的文字到另一个TextBlock
我在堆栈网看到有人问 如何拖动一个TextBlock的文字到另一个TextBlock 于是看到一个大神给出的方法,下面我就来和大家说下如何拖动 一开始我们需要一个界面,就放两个TextBlock 一个 ...
- socket__服务端、客户端(注释版)
# !/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2017/8/22 16:14 # @Author : Mr_zhang # @Sit ...
- (转)log4j使用介绍
原文出自: log4j使用介绍 日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日志记录.以下是个人经验,具体请参考Log4j文档指南. Log4j ...
- Python学习笔记(二)-Python文件类型及编程模式
Python环境搭建:linux,Windows... Linux下:[root@localhost StudyPython]# python #进入交互模式Python 2.7.11 (defaul ...
- 我搞zabbix的那两天
摘要:在生产环境上对服务器进行网络参数(比如CPU.内存等)的监控是很必要的,比如当服务器网络参数如内存不够用.磁盘空间快要占满时及时通知运维人员进行处理,保证服务器系统的安全.而zabbix就是这么 ...
- 分布式学习(一)——基于ZooKeeper的队列爬虫
zookeeper 一直琢磨着分布式的东西怎么搞,公司也没有相关的项目能够参与,所以还是回归自己的专长来吧--基于ZooKeeper的分布式队列爬虫,由于没什么人能够一起沟通分布式的相关知识,下面的小 ...
- Oracle结合Mybatis实现取表中前10条数据
之前一直使用mysql和informix数据库,查表中前10条数据十分简单: 最原始版本: select top * from student 当然,我们还可以写的复杂一点,比如外加一些查询条件? 比 ...
- 关联查询一张小表。对性能有影响吗(mysql)
具体语句 SELECT dfm.id, dfm.member_code, dfm.member_name, dfm.recommend_code, dfm.member_rank, dfm.cre ...
- 2016-2017 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) K Tournament Wins
题目链接:http://codeforces.com/gym/101201 /* * @Author: lyucheng * @Date: 2017-10-22 14:38:52 * @Last Mo ...