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

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

SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的...
只要将以上代码在“查询分析器”里执行一次,SQL SERVER就会在当前数据库中创建一个名为“upGetUserName”的存储过程。你可以打开“企业管理器”,选择当前操作的数据库,然后在左边的树型列表中选择“存储过程”,此时就可以在右边的列表中看到你刚刚创建的存储过程了(如果没有,刷新一下即可)。 二、存储过程的调用 ...

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

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

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

高分求一个用返回值获得记录总数的存储过程!
returnendgo 以上存储过程,在delete顺利执行时,返回1,否则返回0,并进行回滚操作。为了在ASP中取得返回值,需要利用Parameters集合来声明参数: '**调用带有返回值的存储过程并取得返回值**DIM MyComm,MyParaSet MyComm = Server.CreateObject("ADODB.Command")MyComm.ActiveConnection = MyConStr 'MyConStr是数据库...

在SQL SERVER里如何进行以下操作???
关键字OUTPUT表示这是一个输出参数,可以把存储过程执行的结果信息返回应用程序。 default用于指定参数的默认值。 RECOMPILE选项表示重新编译该存储过程。该选项只是在需要的时候才使用,例如经常需要改变数据库模式时。 ENCRYPTION选项用来加密创建存储过程的文本,防止他人查看。 选项FOR REPLICATION主要用于复制过程中。注意,...

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 ...

相似回答