相关疑难解决方法(0)

存储过程返回一个字符串?

可能重复:
将nvarchar值'Internet Explorer 3 original'转换为数据类型int时转换失败

所以我创建了以下简单的存储过程:

CREATE PROCEDURE test
AS
BEGIN
    RETURN 'works!'
END
GO
Run Code Online (Sandbox Code Playgroud)

然后,我想通过触发以下语句来执行它:

EXEC test
Run Code Online (Sandbox Code Playgroud)

为什么我一直收到以下错误?

转换varchar值'works!'时转换失败 到数据类型int.

哦,顺便说一句,(何时)是否有必要在存储过程结束时使用GO语句?我想它在这里没有任何效果,因为当我撤回我的@out字符串时它会跳出程序.

sql varchar stored-procedures return sql-server-2008

7
推荐指数
1
解决办法
3万
查看次数

如何调用存储过程并返回值?

嘿所有,我有一个存储过程,我需要在另一个存储过程中调用它,但我希望第一个返回一个值(字段值).

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
Run Code Online (Sandbox Code Playgroud)

错误

消息102,级别15,状态1,过程rnd_STR,第6行

'@alphaVar'附近的语法不正确.

消息137,级别15,状态1,过程rnd_STR,第8行

必须声明标量变量"@alphaVar".

Msg 2812,Level 16,State 62,Line 4

找不到存储过程'rnd_STR'.

(1排受影响)

没用!!

我怎么称呼它?

顺便说一下,返回的@ID是一个字符串

t-sql sql-server

6
推荐指数
2
解决办法
5万
查看次数