将 nvarchar 值“undefined”转换为数据类型 int 时转换失败

本文关键字:转换 数据类型 失败 int nvarchar undefined | 更新日期: 2023-09-27 17:55:44

我从我的存储过程中得到"将 nvarchar 值'undefined'转换为数据类型 int 时转换失败"。这是从 WCF 服务调用的。下面是我的存储过程的示例格式。

ALTER Procedure [dbo].[sp_GetLang]
(
@UserID nchar(10),
@Return nchar(10)='' output
)AS BEGIN
SET NOCOUNT ON;
SELECT @Return = vc_LanguageName 
FROM [dbo].[vc_UserPrefrences] person INNER JOIN
[dbo].[vc_Languages] lang on person.vc_LanguagID = lang.vc_LanguageID
WHERE person.vc_UserID = @UserID
END

这里只有person.vc_UserID和vc_languageid是整数。

如果您知道,您能否提出一些解决方案。

谢谢!

将 nvarchar 值“undefined”转换为数据类型 int 时转换失败

您应该将@UserID nchar(10)更改为@UserID INT

您可以CAST vc_UserID以下内容NCHAR

WHERE CAST(person.vc_UserID AS NCHAR(10)) = @UserID

或者将变量@UserID的数据类型更改为INT