可能重复:
将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字符串时它会跳出程序.
嘿所有,我有一个存储过程,我需要在另一个存储过程中调用它,但我希望第一个返回一个值(字段值).
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是一个字符串