可能重复:
Conversion failed when converting the nvarchar value ‘Internet Explorer 3 original’ to data type int
所以我创建了以下简单的存储过程:
CREATE PROCEDURE test
AS
BEGIN
RETURN 'works!'
END
GO
然后我想通过触发以下语句来执行它:
EXEC test
为什么我一直收到以下错误?
将varchar值转换为“有效”时转换失败!数据类型为int。
哦,顺便说一句,(何时)是否有必要在存储过程结束时使用GO语句?我想这不起作用,因为当我退回@out String时它会跳出程序。
答案 0 :(得分:20)
使用RETURN只允许您返回INTEGER代码
您需要选择值
CREATE PROCEDURE test
AS
BEGIN
SELECT 'works!'
END
或者如果要在调用者中分配变量,请使用OUTPUT参数
CREATE PROCEDURE test
@outputVal VARCHAR(20) OUTPUT
AS
BEGIN
SET @outputVal = 'works!'
END
DECLARE @val VARCHAR(20)
EXECUTE test @val OUTPUT