首页 > 解决方案 > 执行简单 SQL Server 存储过程时出错“转换 varchar 值时失败”

问题描述

我在 Microsoft SQL Server 中有这个存储过程:

CREATE PROCEDURE display_user_name
    @userID INT,
    @user_name VARCHAR(250) OUTPUT    
AS   
    SET NOCOUNT ON;  

    SELECT @user_name = first_name +' '+ last_name
    FROM User_Table
    WHERE userID = @userID;

    RETURN @user_name
GO 

我得到这个错误

将 varchar 值“john1 doe1”转换为数据类型 int 时转换失败。

当我运行存储过程时,我看到它创建了一个变量@return_value并将其声明为INT,这是我右键单击并运行存储过程时生成的代码

DECLARE @return_value INT,
        @user_name VARCHAR(250)

EXEC    @return_value = [dbo].[display_user_name]
            @userID = 1,
            @user_name = @user_name OUTPUT

SELECT  @user_name as N'@user_name'

SELECT  'Return Value' = @return_value

GO

我将如何修改我的原始存储过程,以免出现此错误?

谢谢您的帮助。

标签: sql-serverstored-procedures

解决方案


推荐阅读