首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >转换nvarchar值时转换失败...转换为数据类型int

转换nvarchar值时转换失败...转换为数据类型int
EN

Stack Overflow用户
提问于 2014-02-09 12:04:58
回答 8查看 317.6K关注 0票数 34

我创建了下面列出的过程:

代码语言:javascript
复制
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)

我尝试使用以下命令来执行它:

代码语言:javascript
复制
**execute getdata 3,'','';**

但是我得到了以下错误:

将nvarchar值'select EmpName,Address,failed Emp_Tb where 1=1 AND Emp_Id_Pk=‘转换为数据类型int时,nvarchar值转换失败

请帮帮忙。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2014-02-09 12:10:23

您正在尝试连接一个字符串和一个整数。

您需要将@ID作为字符串进行cast

尝试:

代码语言:javascript
复制
SET @sql=@sql+' AND Emp_Id_Pk=' + CAST(@ID AS NVARCHAR(10))
票数 71
EN

Stack Overflow用户

发布于 2017-06-20 22:37:40

尝试使用

代码语言:javascript
复制
CONVERT(nvarchar(10),@ID)

这与cast相似,但成本更低(就时间消耗而言)

票数 7
EN

Stack Overflow用户

发布于 2018-05-12 14:09:34

我在我的一个专栏中使用了一个关键字,我用brackets []解决了这个问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21655110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档