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
相关推荐
SelectDB12 小时前
让变更流出 Doris:Apache Doris 5.0 基于增量计算的 CDC 技术解析
数据库
这个DBA有点耶13 小时前
MCP隔离层+行级语义审计+输出校验:AI访问数据库的安全边界拆解
数据库·人工智能·ai编程
新*13 小时前
Elasticsearch 7.17 的 SQL 到底能查到什么?一次踩坑记录
后端·sql·elasticsearch·查询
这个DBA有点耶13 小时前
从反向扫描O(n)到正向扫描O(1):降序索引的物理机制与混合排序匹配规则
数据库
2501_9339232515 小时前
解读Redis:单线程模型
数据库·redis·缓存
Tapdata16 小时前
被忽略的第三类上下文:Agent 进入真实业务后,还缺什么?
数据库·人工智能·架构
小科先生17 小时前
Java springboot调用数据库的基本流程
java·数据库·spring boot
星恒随风17 小时前
MySQL 从零入门(四):表的增删改查与基础查询详解
linux·服务器·数据库·笔记·mysql
Pniubi19 小时前
MySQL靠什么实现事务的?事务隔离级别有哪些?
java·数据库·mysql
数据库小学妹19 小时前
pgbouncer 事务池:prepared statement、临时表与会话状态
数据库·后端·postgresql