SQL存储过程返回值

时间:2023-03-09 02:45:22
SQL存储过程返回值

1 SQL存储过程返回值有3种

1.1 直接return返回(例如 return 1);

1.2 通过参数output返回(例如字符串类型);

1.3 直接返回程序集(Dataset程序集)。

2 用return返回

2.1 /* 存储过程

CREATE PROCEDURE AB1
@p1 int
AS BEGIN
DECLARE @b int
SELECT @b=COUNT(IC) FROM B AS b WHERE b.IC=@p1
IF @b>0
RETURN 1
ELSE
RETURN 0
END

*/

2.2 SQL中调用

-----@RC获取的是return的返回值,@result获取的是执行的结果

DECLARE @RC INT
DECLARE @result INT
SET @result=1
EXEC @RC=AB1
@result

SELECT @RC,@result

3 使用output返回

/*3.1 查询B表中的数量,有的话则返回1 无则返回0

create PROCEDURE AB2
@no INT,
@p1 INT output
AS BEGIN
SET @p1=0

DECLARE @num int
SELECT @num=COUNT(IC) FROM B AS b WHERE b.IC=@no
IF @no>0
SET @p1=1
ELSE
SET @p1=0
END

*/

3.2 sql中执行查看

DECLARE @RC INT
DECLARE @no int
DECLARE @result INT
--编号位1的卡号是否存在
SET @no=1

EXEC @RC=AB2
@no,
@result output

SELECT @RC,@result

4 直接返回程序集

4.1 存储过程

create PROCEDURE AB3

AS BEGIN
--查询表B,C中的数据
SELECT b.ID, b.IC FROM [B] AS b
SELECT c.ID, c.IC FROM [C]AS c
END

4.2 sql中执行查看

DECLARE @RC INT

EXEC @RC=AB3
SELECT @RC

SQL存储过程返回值