当前位置: 代码迷 >> Sql Server >> 一存储过程异常
  详细解决方案

一存储过程异常

热度:97   发布时间:2016-04-27 12:45:12.0
一存储过程错误
有一存储过程如下:
CREATE procedure mod_sjsr1
@TableName varchar(30),
@id int,
@ch varchar(7),
@yu1 numeric(3, 0)
as
begin
exec('update ['+ @TableName + '] set [email protected]+''',[email protected]+''' where [email protected]+'''')
end
GO
查询分析器调用:
declare @id int,@ch varchar(7),@yu1 numeric(3, 0),@TableName varchar(30) set @id='1' set @ch='G0A-116' set @yu1='66' set @TableName='F2201252' exec mod_sjsr1 @id,@ch,@yu1,@TableName
出错信息:
将数据类型 varchar 转换为 int 时出错。

yu1='66'如何书写

请各位大侠不吝指教

------解决方案--------------------
SQL code
declare @id int,@ch varchar(7),@yu1 numeric(3, 0),@TableName varchar(30)  set @id=1 set @ch='G0A-116' set @yu1=66set @TableName='F2201252' exec mod_sjsr1 @TableName,@id,@ch,@yu1
------解决方案--------------------
SQL code
exec('update ['+ @TableName + '] set [email protected]+''',[email protected]+''' where Id='+Convert(varchar(32),@id)+'')
------解决方案--------------------
VB code
sql='exec @TableName='"+trim(edit1.text)+"',@id="+trim(edit2.text)+",@ch='"+ytim(edit3.text)+"',@yu1="+trim(edit4.text)+"'
  相关解决方案