【问题标题】:Stored Procedure returning a string? [duplicate]存储过程返回一个字符串? [复制]
【发布时间】:2012-11-18 21:55:56
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

使用RETURN 只允许您返回一个整数代码

您需要选择值

   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

【讨论】:

  • 哦,这就是为什么,哈哈!非常感谢,现在我可以回家享受我的周末了:-)
  • 您需要在第二个过程结束时SELECT @val 才能将其输出
猜你喜欢
  • 2014-10-20
  • 2016-05-07
  • 2011-10-19
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多