C#开发学习——存储过程
2018-06-18 01:23:25来源:未知 阅读 ()
举个例子:
带输入参数的存储过程
计算班级中英语和数学不及格的人数
if(exists(select * from sys.objects where name='usp_GetFailCount'))
drop proc usp_GetFailCount
go
create proc usp_GetFailCount--开始创建存储过程
@EngPass int,--存储过程的参数不需要加declare
@MathPass int
as
声明变量存储英语成绩不及格和数学成绩不及格的人数
declare @engCount int
declare @mathCount int
--给人数赋值
select @engCount=Count(*) from Score where english<@EngPass
select @mathCount=Count(*) from Score where math<@MathPass
--输出结果
select '英语不及格的人数',@engCount
select '数学不及格的人数',@mathCount
执行存储过程
exec usp_GetFailCount
--传入两个需要的参数
exec usp_GetFailCount 80,60
--想让英语和数学的及格分数线都是60
exec usp_GetFailCount @EngPass=60,@MathPass=60
总结:
存储过程如果没有默认的参数
传参的方式
1.直接传入跟参数类型一样的值
2.@参数名=值,个数必须跟参数要求的一致
存储过程如果有默认的参数
1.不传,采用的默认值
2.传1个,另一个就是默认值
3.传2个,会把默认值覆盖
带输出参数的存储过程
if(exists(select * from sys.objects where name='usp_GetEngFailCount'))
drop proc usp_GetEngFailCount
go
create proc usp_GetEngFailCount
@EngPass int,--输入参数
@MathPass int,
将数学成绩不及格的人数 使用输出参数返回
@MathFailCount int output--输出参数
as
先求英语不及格的人数
declare @EngFailCount int
select @EngFailCount=Count(*) from Score where english<@EngPass
select @MathFailCount=Count(*) from Score where math<@MathPass
-只打印英语不及格的人数
select '英语不及格的人数',@EngFailCount
Declare @mCount int
--调用
exec usp_GetEngFailCount 60,60,@mCount output
输出数学不及格的人数
select '数学不及格的人数',@mCount
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 关于各种不同开发语言之间数据加密方法(DES,RSA等)的互通的 2020-06-07
- 如何0基础学习C/C++? 2020-06-06
- C++ 共用体 2020-06-05
- STM32F103驱动M24256 256k存储芯片进行读写 2020-05-28
- OpenCV开发笔记(五十九):红胖子8分钟带你深入了解分水岭 2020-05-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash