日期:2014-05-18  浏览次数:20542 次

VS2005中调用存储过程报变量没有定义
代码如下:

............................
IF   EXISTS(SELECT   *   FROM   tab_SysProp   WHERE   LevelOneName=@onematerialname)
begin
update   tab_SysProp  
set   LevelOneName=@onematerialnamenew
where   LevelOneName=@onematerialname
end

IF   EXISTS(SELECT   name   FROM   sysobjects   where   name=@tabname)
begin
exec
( '
update   '+@tabname+ '   set   LevelOneName=@onematerialnamenew
    where   LevelOneName=@onematerialname
')
end


.............................


第一个更新可以,第二个就不行了报@onematerialnamenew没有定义,谢谢!

------解决方案--------------------
exec
( '
update '+@tabname+ ' set LevelOneName=@onematerialnamenew
where LevelOneName=@onematerialname
')

exec
( '
update '+@tabname+ ' set LevelOneName= ' ' '+@onematerialnamenew+ ' ' '
where LevelOneName= ' ' '+@onematerialname+ ' ' ' ')