T - SQL 输出参数的过程

输出参数的存储过程的定义:执行完存储过程之后得到具体的值

带输入参数、输出参数、默认值参数的定义方式

create procedure 过程名

-- @i1 int output,

-- @i4 int output,

-- @i2 int,

-- @i3 int,

-- @i6 int = 10

--as

-- sql语句

--go

--declare @i7 int,@i8 int

--exec 过程名 @i7 output,@i8 output,@i2 = 13,@i3 = 14,@i6 = 20

实例一:查询缺考人数

sql 复制代码
use SMDB
go

-- 查询不及格或者及格的人数 以及缺考的人数
create procedure usp_tt3
	-- 输出参数 返回值
	@jigecount int output, -- 及格人数
	@quekaocount int output -- 缺考人数

as
	-- 及格的人数,必须两门成绩都得大于60才能算及格
	select @jigecount = count(*) from
	ScoreList where CSharp>60 and SqlserverDB >60

	-- 缺考人数
	select @quekaocount = count(*) from Students where StudentId not in (select StudentId from ScoreList)
go
declare @jige int,@quekao int

把@jigecount值赋值给变量@jige

再去调用具有输出参数过程时候,必须在输出参数后面添加output关键字,并且需要先定义变量,

用定义变量接收输出参数值

exec usp_tt3 @jige output,@quekao output

print @jige

print @quekao

-- 以表格的形式展示及格和缺考人数

select 及格人数 = @jige,缺考人数=@quekao

即带输出参数 也带输入参数

-- 查询家庭住址是河南的学生的个数,

sql 复制代码
use SMDB
go
create procedure usp_gua
	@count int output, -- 输入参数 河南人数
	@address varchar(10) -- 输入参数 住址,
as
	select @count = count(*) from Students where StudentAddress = @address
go
-- 获取河南的人数
declare @c1 int 
exec usp_gua @c1 output,@address = '河南'
print @c1

-- 获取湖北省人数
declare @c2 int
exec usp_gua @c2 output,@address = '湖北'
print @c2

实例二:存储过程默认参数的定义方式

查询成绩CSharp成绩大于60的个数,默认及格线是60,并且自定义及格线

sql 复制代码
use SMDB
go
-- private int Add(int a,int b)
create procedure usp_ggd
	@count int output,
	@score int = 70 --score的默认值就是70
as
	select @count = count(*) from ScoreList where CSharp > @score 
go

declare @jigecount int
exec usp_ggd @jigecount output --本次调用没有传输入参数,参数值是默认值60
print @jigecount 

exec usp_ggd @jigecount output,@score = 70
print @jigecount
相关推荐
专注API从业者7 分钟前
基于 Flink 的淘宝实时数据管道设计:商品详情流式处理与异构存储
大数据·前端·数据库·数据挖掘·flink
小猿姐1 小时前
KubeBlocks for Milvus 揭秘
数据库·云原生
码出未来8571 小时前
浅谈DDL、DSL、DCL、DML、DQL
sql
AI 嗯啦1 小时前
SQL详细语法教程(四)约束和多表查询
数据库·人工智能·sql
阿里云大数据AI技术1 小时前
【跨国数仓迁移最佳实践6】MaxCompute SQL语法及函数功能增强,10万条SQL转写顺利迁移
python·sql
杜子不疼.1 小时前
《Python学习之文件操作:从入门到精通》
数据库·python·学习
TDengine (老段)2 小时前
TDengine IDMP 高级功能(4. 元素引用)
大数据·数据库·人工智能·物联网·数据分析·时序数据库·tdengine
DashVector2 小时前
如何通过Java SDK分组检索Doc
java·数据库·面试
Olrookie3 小时前
XXL-JOB GLUE模式动态数据源实践:Spring AOP + MyBatis 解耦多库查询
java·数据库·spring boot
苏婳6663 小时前
【最新版】怎么下载mysqlclient并成功安装?
数据库·python·mysql