set @vSQL=@vSQL+'   delete from '+@FSrvName+'t_Item where FNumber='''+@FDeNumber+''' and FItemClassID=2001'Execute(@vSQL)以上动态SQL(@vSQL)中的字符串变量(@FDeNumber)值为:'03.001',执行后报错。
但字符串变量值中间没有点号时,如:'03001'则可正常执行。
求教解决办法,十万火急!!!

解决方案 »

  1.   

    动态SQL跟"."肯定无关,查找其它错误.set @vSQL=@vSQL+'   delete from '+@FSrvName+'t_Item where FNumber='''+@FDeNumber+''' and FItemClassID=2001'
    print @vSQL --把print结果拿来执行,看错在那里.--Execute(@vSQL)
    sdhylj(青锋-SS)老弟还在线. 真不简单,我要休息了.
      

  2.   

    declare @str varchar(10)
    set @str='03.001'
    select cast(@str as int)
    --出错declare @str varchar(10)
    set @str='03001'
    select cast(@str as int)
    --OK
      

  3.   

    -----------------------------------
    Select @vSQL=''             --此处对变量进行赋值(可以为空,也可以是其它的值)
    -----------------------------------set @vSQL=@vSQL+'   delete from '+@FSrvName+'t_Item where FNumber='''+@FDeNumber+''' and FItemClassID=2001'Execute(@vSQL)
      

  4.   

    declare @str varchar(10)
    set @str='03.001'
    select convert(decimal(5,3),@str)