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

时间:2012-11-30 16:35:41

标签: sql sql-server-2008 stored-procedures return varchar

  

可能重复:
  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时它会跳出程序。

1 个答案:

答案 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