嘿所有, 我有一个存储过程,我需要在另一个存储过程中调用它,但我希望第一个返回一个值(字段值)。
CREATE PROCEDURE rnd_STR
(
@Length int
)
@alphaVar varchar(10) OUTPUT
AS
SET @alphaVar = 'blah'
#procedure body
END
GO
DECLARE @alphaVar varchar(10)
EXEC rnd_STR @alphaVar output
SELECT @alphaVar
错误
Msg 102,Level 15,State 1,Procedure rnd_STR,Line 6
'@alphaVar'附近的语法不正确。
Msg 137,Level 15,State 1,Procedure rnd_STR,Line 8
必须声明标量变量“@alphaVar”。
Ms Ms 2812,Level 16,State 62,Line 4
无法找到存储过程'rnd_STR'。
(1行受影响)
没用!!
我怎么称呼它?
BTW,返回的@ID是一个字符串
答案 0 :(得分:14)
您说@alphaVar
是varchar(10)
。在这种情况下,您需要使用如下的输出参数。 Return
只能用于存储过程中的整数类型。
CREATE PROCEDURE rnd_STR
@Length int,
@alphaVar varchar(10) OUTPUT
AS
BEGIN
SET @alphaVar = 'blah'
/* Rest of procedure body*/
END
GO
DECLARE @alphaVar varchar(10)
EXEC rnd_STR 10, @alphaVar output
SELECT @alphaVar
或者,您可以使用标量UDF而不是存储过程。
答案 1 :(得分:9)
答案 2 :(得分:0)
试试这个:
EXEC @alphaVar = rnd_STR 10
答案 3 :(得分:0)
获取此代码的一种方法是在Management Studio
本身执行存储过程并复制SQL
代码