创建自定义存储过程

--创建自定义存储过程
--语法:
--if exists(select * from sysobjects where name=‘‘)
-- drop proc ‘‘
--go
--create proc[edure] usp_名称
-- 相当于方法的():创建参数
--as
-- 相当于方法{}:方法体
--go
--调用语法:
--exec 存储过程名称 参数值,参数值 。。。。。
--创建存储过程,获取所有学员信息
if exists(select * from sysobjects where name=‘usp_getStuInfo‘)
drop proc usp_getStuInfo
go
create proc usp_getStuInfo
--参数区域
as
--方法体
select * from Student
go
--调用存储过程,获取所有学员信息
exec usp_getStuInfo

exec sp_executesql N‘usp_getStuInfo‘

--获取指定性别的学员信息
go
if exists(select * from sysobjects where name=‘usp_getStuInfoBySex‘)
drop proc usp_getStuInfoBySex
go
create proc usp_getStuInfoBySex
--参数列表区域
@sex char(2) --声明参数不能使用declare
as
select * from Student where [email protected]
go
--调用存储过程,获取指定性别的学员信息
exec usp_getStuInfoBySex ‘男‘
--创建存储过程,获取指定班级和性别的学员信息
go
if exists(select * from sysobjects where name=‘usp_getStuInfoBySexandcid‘)
drop proc usp_getStuInfoBySexandcid
go
create proc usp_getStuInfoBySexandcid
@sex char(2)=‘男‘ , --多个参数之间使用,分隔 输入参数(调用的时候必须传入值,及参数的默认值,用户可以选择是否传入值) 性别 ,参数有默认值 一般会建议有默认值的参数会创建在参数列表 的最后
@className nvarchar(50) --最后一个参数不需要使用, 班级名称
as
declare @cid int --班级ID
set @cid=(select classid from Classes where [email protected]) --获取班级ID
select * from Student where [email protected] and [email protected]
go
--调用存储过程,获取指定性别和班级的学员信息
--一旦使用了 ‘@name = value‘ 形式之后,所有后续的参数就必须以 ‘@name = value‘ 的形式传递。
exec usp_getStuInfoBySexandcid default,@className=‘七期班‘

--创建存储过程,获取指定班级和性别的总人数及信息
go
if exists(select * from sysobjects where name=‘usp_getStuNumBySexandcid‘)
drop proc usp_getStuNumBySexandcid
go
create proc usp_getStuNumBySexandcid
@num int output, --满足条件的总记录数 output:标记这个参数是需要输出的,意味着他会向服务器请求返回这个参数的值
@totalnum int output, --总人数 不要为输出参数赋值默认值,没有意义
@classname nvarchar(50),--班级名称
@sex char(2)=‘男‘--性别
as
declare @cid int =(select classid from Classes where [email protected])
select * from Student where [email protected] and [email protected]ex--返回结果集
select @num=COUNT(*) from Student where [email protected] and [email protected] --计算满足条件的记录数.如果在存储过程中没有重新赋值, 那么就会返回null值
select @totalnum=(select COUNT(*) from Student)
return 100
go
--调用存储过程,获取指定班级和性别的总人数
declare @cnt int=100,@tnum int --接收从服务器返回的output参数值
exec usp_getStuNumBySexandcid @cnt output,@tnum output,‘七期班‘ --output发送请求
select @cnt,@tnum

--返回值---return
if exists(select * from sysobjects where name=‘usp_returnValue‘)
drop proc usp_returnValue
go
create proc usp_returnValue
@sid int --学号
as

declare @cnt int
exec usp_getStuInfo
--set @cnt=(select COUNT(*) from Student)
Declare @name nvarchar(50)=(select StudentName from Student where [email protected])
return @name --只能返回整数值
go

declare @num nvarchar(50)
exec @num= usp_returnValue 10
print @num

create proc usp_getClassesInfo
as
select * from classes
go

时间: 2024-10-31 10:26:34

创建自定义存储过程的相关文章

mysql创建自定义函数与存储过程

mysql创建自定义函数与存储过程 一 创建自定义函数 在使用mysql的过程中,mysql自带的函数可能不能完成我们的业务需求,这时就需要自定义函数,例如笔者在开发过程中遇到下面这个问题 mysql表结构如下 DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `pic` varchar(50) NOT NULL, `hashcode` varchar

我的MYSQL学习心得(十) 自定义存储过程和函数

我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(十一) 视图 我的MYSQL学习心得(十二) 触发器 我的MYSQL学习心得(十三) 权限管理 我的MYSQL学习

自定义存储过程和函数

MYSQL的存储过程和函数 MYSQL中创建存储过程和函数分别使用CREATE PROCEDURE和CREATE FUNCTION 使用CALL语句来调用存储过程,存储过程也可以调用其他存储过程 函数可以从语句外调用,能返回标量值 创建存储过程 语法 CREATE PROCEDURE sp_name ([ proc_parameter ]) [ characteristics..] routine_body proc_parameter指定存储过程的参数列表,列表形式如下: [IN|OUT|IN

MySQL优化之——自定义存储过程和函数

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46612859 MYSQL中创建存储过程和函数分别使用CREATE PROCEDURE和CREATE FUNCTION 使用CALL语句来调用存储过程,存储过程也可以调用其他存储过程 函数可以从语句外调用,能返回标量值 创建存储过程 语法 CREATE PROCEDURE sp_name ([ proc_parameter ]) [ characteristics..] routi

微信公众平台如何创建自定义菜单?

微信现在的功能越来越强大了,申请认证后的开发者能自定义菜单,用户直接点击微信界面下方的菜单,就能直接去到指定的页面,下面小编用[微信公众平台测试号]为大家演示一下怎么创建自定义菜单. 工具/原料 认证后的微信公众平台 微信公众平台切换开发者模式 方法/步骤 登录[微信公众平台],选择[功能]菜单下面的[高级功能],进入[开发模式]. 由于小编的微信公众平台还没通过认证,下面用[申请测试账户]为大家演示. 微信公众平台接口测试帐号申请,无需公众帐号.快速申请接口测试号,直接体验和测试公众平台所有高

oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)

这篇文章主要介绍了oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包等相关资料,需要的朋友可以参考下 oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块.但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以命名的方式存储于数据库中的.和PL/SQL程序相比,存储

Drupal创建自定义表单,上传文件代码

Drupal中创建自定义表单,用来上传文件,对上传文件做一些操作.以下是放在Module中的代码: 一.菜单建立表单路径 /** Implementation of hook_menu(). */ function moduleName_menu () { $items = array(); $items['admin/import'] = array( 'title' => 'title', 'page callback' => 'drupal_get_form', 'page argume

通过反射创建自定义泛型的实例。

比如有这样一个泛型:Demo.GenericsSimple<T,TT> 我想要通过反射创建一个Demo.GenericsSimple<string,int>的实例可以通过下面的格式进行创建: System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("命名空间.User`形参数量N[[1形参类型全名,形参类型所在的程 序集名称],[2形参类型全名,形参类型所在的程序集名称],[3形参类型全名,形参类型

带你走近AngularJS - 创建自定义指令

为什么使用AngularJS 指令? 使用过 AngularJS 的朋友应该最感兴趣的是它的指令.现今市场上的前端框架也只有AngularJS 拥有自定义指令的功能,并且AngularJS 是目前唯一提供Web应用可复用能力的框架. 目前有很多JavaScript 产品提供插件给Web开发人员.例如, Bootstrap 就是当前比较流行的提供样式和JavaScript插件的前端开发工具包.但是开发人员在使用Booostrap中的插件时, 必须切换到JavaScript 模式来写 jQuery