【发布时间】:2019-07-08 20:22:22
【问题描述】:
我需要使用从桌面应用程序作为参数传递的值来更新表。但是每次我尝试运行查询时,我都会收到此错误:
消息 245,第 16 级,状态 1,第 5 行 转换 varchar 值 'UPDATE 时转换失败 桌子 放 TypeId = ' 转数据类型 int。
我试图通过将代码减少到最少来隔离问题,下面是我实际代码中最短的 sn-p,但问题仍然存在。我认为这很可能是语法问题,但是在浏览了一段时间后,我似乎仍然无法弄清楚问题所在。
DECLARE @typeId int = 175;
DECLARE @item varchar(20)= 'ABC123'
DECLARE @SQLScript varchar(5000);
SET @SQLScript = 'UPDATE
table
SET
TypeId = ' + @typeId + '
WHERE item = ''' + @item + '''
'
Print(@SQLScript);
我期望从Print(@SQLScript) 得到的结果是
查询:
UPDATE
table
SET
TypeId = 175
WHERE
item = 'ABC123'
【问题讨论】:
标签: sql sql-server type-conversion