sqlserver2005 存储过程返回值的问题
--下面是test1过程CreatePROCEDURE[dbo].[test1](@snvarchar(20),@idintOUTPUT)ASBEGINSETNOCOUN...
--下面是test1过程
Create PROCEDURE [dbo].[test1](
@s nvarchar(20) ,
@id int OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
SET @id = 1
return 2
END
--测试
declare @s nvarchar(20),@id int,@ret int
exec @ret=test1 @s,@id
select @id,@ret
@ret=2 正常。
为什么@id不等于1而是null??怎么改 展开
Create PROCEDURE [dbo].[test1](
@s nvarchar(20) ,
@id int OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
SET @id = 1
return 2
END
--测试
declare @s nvarchar(20),@id int,@ret int
exec @ret=test1 @s,@id
select @id,@ret
@ret=2 正常。
为什么@id不等于1而是null??怎么改 展开
1个回答
展开全部
返回结果的方式有很多我说两种,一种是利用存储过程的参数可以把存储过程的结果返回,另外一种是在外部接收存储过程内部return出来的结果。当然啦,还可以在存储过程内部select要返回的结果。
比如:
create proc test
@p_errormsg varchar(80) = '' out
as
select @p_errormsg = '测试'
return -100
go
--------------------------------------------------------------
declare @errorcode int
declare @errormsg varchar(80)
exec @errorcode = test @errormsg out
select @errorcode as errorcode, @errormsg as errormsg
--@errorcode是return出来的结果 @errormsg 是输出参数@p_errormsg的执行结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询