大家好,
我有一个存储过程,需要在另一个存储过程中调用它,但是我要第一个返回一个值(字段值)。
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
错误
消息102,级别15,状态1,过程rnd_STR,第6行
'@alphaVar'附近的语法不正确。
消息137,第15级,状态1,过程rnd_STR,第8行
必须声明标量变量“@alphaVar”。
消息2812,第16级,状态62,第4行
找不到存储过程“rnd_STR”。
(影响1行)
没用!
我怎么称呼它?
顺便说一句,返回的@ID是一个字符串
最佳答案
您说@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而不是存储过程。
关于sql-server - 如何调用存储过程并返回值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4558812/