在sql Server中~如何利用RETURN返回存储过程的值~

请教高手~~最好有OUTPUP和RETURN的对比的实例~~

create proc sp_CourseFeedBack_Insert
(
----报班人数
@CourseReg int=0,
---退班人数
@CourseWithDrawNum int=0,
---赠班人数
@CourseGive int=0,
---缺勤人数
@CourseAbsence int=0,
---实际上课人数
@CourseReal int=0,
---调查表份数
@QuestionnaireNo int=0,
---平均分
@AverageScore decimal,
---退班原因
@CourseQuitReason varchar(100)='',
---备注
@CourseComment varchar(100)='',
---图片地址
@CourseImageURL varchar(100)='',
---学员意见
@CourseStuSuggest varchar(100)='',
@TeacherClassID int

)
as
begin
declare @StateID int
declare @CourseFeedBackID int
--取出@stateID
exec sp_StateTmp_Insert @StateID=@StateID output
insert into tb_Course_FeedBack
(
StateID,
TeacherClassID ,
CourseReg,
CourseWithDrawNum,
CourseGive,
CourseAbsence,
CourseReal,
QuestionnaireNo,
AverageScore,
CourseQuitReason,
CourseStuSuggest,
CourseComment,
CourseImageURL,
CourseSubmitTime,
isFilled
)
values
(
@StateID,
@TeacherClassID,
@CourseReg,
@CourseWithDrawNum,
@CourseGive,
@CourseAbsence,
@CourseReal,
@QuestionnaireNo,
@AverageScore,
@CourseQuitReason,
@CourseStuSuggest,
@CourseComment,
@CourseImageURL,
getdate(),
0
)
SET @CourseFeedBackID = SCOPE_IDENTITY()
return @CourseFeedBackID
end

--创建返回stateID的存储过程
create Proc sp_StateTmp_Insert
@StateID int output
as
begin
insert into tb_State(isSend) values(0)
SET @StateID = SCOPE_IDENTITY()
end
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-08-16
从存储过程返回非表类型的值有二种方法:
1.存储过程使用return语句返回值.此种情况下,接收该存储过程值的方法是:
delcare
@ReturnValue
int
/*(与存储过程return语句返回值的类型相同)*/
exec
@ReturnValue
=
StoredProc
/*StoredProc为一个存储过程*/
2.存储过程使用OUTPUT输出参数.此种情况下,直接使用OUTPUT输出参数即可:
declare
@id
int
set
@id
=
1
exec
StoreProc
@id
OUTPUT
/*StoredProc为一个存储过程*/
select
@id

在sql Server中~如何利用RETURN返回存储过程的值~~~
1.存储过程使用return语句返回值.此种情况下,接收该存储过程值的方法是:delcare @ReturnValue int \/*(与存储过程return语句返回值的类型相同)*\/ exec @ReturnValue = StoredProc \/*StoredProc为一个存储过程*\/ 2.存储过程使用OUTPUT输出参数.此种情况下,直接使用OUTPUT输出参数即可:...

在sql Server中~如何利用RETURN返回存储过程的值~
SET @CourseFeedBackID = SCOPE_IDENTITY()return @CourseFeedBackID end --创建返回stateID的存储过程 create Proc sp_StateTmp_Insert StateID int output as begin insert into tb_State(isSend) values(0)SET @StateID = SCOPE_IDENTITY()end ...

在sql select 语句中 如何获取 存储过程的返回值
SQL Server中存储过程的返回值不是通过return语句返回的(return语句是在用户自定义函数中使用的),而是通过存储过程的参数来返回,在定义存储过程的参数时使用关键字output来指定此参数是返回值。而在调用存储过程时,也必须使用关键字给接收返回值的变量,这样才能在调用时获得存储过程的返回值。示例:create ...

关于SQL server 的 return语句
如果你要用SQL里reutrn返回的值,声明一个SqlParameter 对象,设置其方向为OutPut,同样在SQL语句里也加这个参数,调用时把SqlParameter传进去

SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的...
其中Create PROC 语句(完整语句为Create PROCEDURE)的意思就是告诉SQL SERVER,现在需要建立一个存储过程,upGetUserName 就是存储过程名称,@intUserId 和 @ostrUserName 分别是该存储过程的两个参数,注意,在SQL SERVER中,所有用户定义的变量都以“@”开头,OUTPUT关键字表示这个参数是用来输出的,AS之后就是存储过程内容...

sql server 存储过程如何返回一个集合啊?
对于@table_result, @后是自定义参数,不是返回值。存储过程执行完成后会自动返回集合的,因为你执行的是一条select语句,不用return。存储过程没有return语句

SQL存储过程,如何回滚啊?
对于大多数 OLE DB 提供程序(包括 SQL Server),必须将隐式或显示事务中的数据修改语句中的 XACT_ABORT 设置为 ON。唯一不需要该选项的情况是在提供程序支持嵌套事务时。有关详细信息,请参阅 分布式查询和分布式事务。SET XACT_ABORT 的设置是在执行或运行时设置,而不是在分析时设置。示例 下列...

SQL SERVER 向 C# 返回值
当然可以啦,带返回值的存储过程就可以实现。例:create procedure user name char(10),address char(50) output as select @address=address from bbb where name=@name if @@error<>0 return -1 else return 0 go 返回值变量的声明后面加output 这样就能取出select出的address ...

SQL Server 在一个存储过程中调用另外一个存储过程获取返回值,出现报 ...
第一种方法: 使用output参数 USE AdventureWorks;GO IF OBJECT_ID ( 'Production.usp_GetList', 'P' ) IS NOT NULL DROP PROCEDURE Production.usp_GetList;GO CREATE PROCEDURE Production.usp_GetList @product varchar(40), @maxprice money , @compareprice money OUTPUT , @listprice money OUT ...

sql server关于函数中如何使用Getdate()
---以下是解析---应为function内部不允许使用函数可以是确定的或不确定的。如果任何时候用一组特定的输入值调用函数时返回的结果总是相同的,则这些函数为确定的。如果每次调用函数时即使用的是相同的一组特定输入值,返回的结果总是不同的,则这些函数为不确定的。不确定的函数会产生副作用。副作用是...

相似回答