sql-server - 执行简单 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
我将如何修改我的原始存储过程,以免出现此错误?
谢谢您的帮助。
解决方案
推荐阅读
- php - Laravel WebSockets: Illuminate \ Broadcasting \ BroadcastException: No Message and net::ERR_CERT_AUTHORITY_INVALID
- build - WIX - 构建一个包含 32 位和 64 位 MSI 的 setup.exe 包
- google-cloud-platform - 如何使用 Google 的 API 从 Google Cloud Storage 获取报告
- php - 如何改进 WordPress 插入/更新查询?
- encryption - 如何使用 AES 加密 VBScript 中的文件?
- c# - 错误:System.Data.OleDb.OleDbException:“没有为一个或多个必需参数提供值”
- javascript - 视频弹出内容 - 精彩的弹出
- c++ - 对重载的可变参数模板函数的模糊调用
- ios - 链接两个(或更多)UISegmented 控件
- javascript - promise.all 是用来解封装 promise 值的吗?