请大侠们帮我看看一个存储过程
CREATE PROCEDURE WF_ADDROLE @ClassName nvarchar(50)
as
declare @ExistFlag int
select @ExistFlag=RoleID from WF_Role where RoleName=@ClassName
if @Exist is null
begin
insert into WF_role(RoleName) values(@ClassName)
select @@IDENTITY as returnFlag
end
else
select 0 as returnFlag
RETURN 0
GO
请问RETURN 0是什么意思,还有我看到很多存储过程无论是需要返回值还是不需要都有一个RETURN 0
这个东西是做什么用的
这里明显需要返回的是returnFlag 怎么不用RETURN returnFlag???
我翻了好几本书也没找到有介绍这个东西的
小弟初学,很多不懂,成心请教,谢谢各位!
问题点数:20、回复次数:4Top
1 楼goodtoyou(打我我投降)回复于 2006-05-02 12:21:54 得分 10
RETURN语句用于无条件的退出存储过程。RETURN之后的任何语句都不再执行。RETURN语句可以给调用语句返回一个值,但不能返回NULL值。SQL Server经常为存储过程返回一个状态值。如果成功地执行,则返回一个0,如果出现了错误,则返回一个为负数的错误码。
RETURN返回的是存储过程的运行状态,returnFlag已经在select @@IDENTITY as returnFlag这样的语句里返回了Top
2 楼tomtown530(梦想一定会实现!)回复于 2006-05-02 12:38:26 得分 10
RETURN 0是无条件退出存储过程,表示这个存储过程已经结束,指示系统退出。
而存储过程返回的值(一个记录集、一个字段、或者一个数字)是在select @@IDENTITY as returnFlag或select 0 as returnFlag里返回了,而不是return 0返回给调用存储过程的cmd.
Top
3 楼j__jake(人称大侠,但偶不是)回复于 2006-05-02 18:51:42 得分 0
非常感谢goodtoyou(ALLLLL),tomtown530(梦想一定会实现!) 2位朋友的回答..
现在明白了,谢谢!Top
4 楼webwalker(Jason.Xu@BenQ.com)回复于 2006-05-02 22:28:21 得分 0
yesTop




