sql – 将nvarchar值转换为数据类型int时,转换失败

前端之家收集整理的这篇文章主要介绍了sql – 将nvarchar值转换为数据类型int时,转换失败前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了以下程序:
CREATE procedure getdata
(
    @ID int,@frm varchar(250),@to varchar(250)
)
AS
BEGIN

DECLARE @sql nvarchar(500)


set @sql = 'select'
set @sql = @sql + ' EmpName,Address,Salary from Emp_Tb where 1=1 '

IF (@ID <> '' and @ID is not null)     
  Begin     
   SET @sql=@sql+' AND Emp_Id_Pk=' +@ID   
  End 
END

print @sql
--execute (@sql)

我尝试执行它:

**execute getdata 3,'','';**

但是我收到以下错误

Conversion Failed when converting the nvarchar value ‘select EmpName,
Address,Salary from Emp_Tb where 1=1 AND Emp_Id_Pk=’ to data type int

请帮忙.

解决方法

你试图连接一个字符串和一个整数.
您需要将 cast @ID作为字符串.
尝试:
SET @sql=@sql+' AND Emp_Id_Pk=' + CAST(@ID AS NVARCHAR(10))

猜你在找的MsSQL相关文章