你应该用 SP_EXECUTESQL这个储存过程执行动态SQL

解决方案 »

  1.   

    1、
    Declare @xx varchar(200)
    Set @xx='Update '+@TableName_wzdjb+' Set ZF='+@FzValue+' Where PZHM='+@InputPzhm
    Exec(@xx)
    2、Select @FzValue=aaa form tab1
      

  2.   

    如果你要这种方式将表名作为参数,只能采用动态生成字符串,然后用Exec(strSQL)执行,sp_executesql也不支持表明作为参数,我觉得可能是sql需要预编译吧
      

  3.   

    1
    declare @tabl varchar(100)
    set @tab1='tab1'
    exec('Select aaa form '+@tab1)2
    declare @sql varchar(300),@FzValue varchar(100)
    set @sql=N'set @myout=(Select aaa form tab1)'
    exec executesql @sql,N'@myout varchar(100) output',@FzValue output
    select @FzValue