唉~~~又是這種問題。
用sp_ExecuteSQL.用法可搜索論壇,一大把這种類似的帖子。

解决方案 »

  1.   

    你的@a是定义在@sql外面的,当你用execute(@sql)时,由于@sql中的@a没有定义,就会出错。
    你可以这样
    set @sql='declare @a int select @a=a from '+@tablename
    然后execute(@sql)
    但是@a这个变量在执行完execute后你也拿不到它的值。
    如果一定要用的话,只能将它也放到@sql中去。
      

  2.   

    sp_ExecuteSQL
    建议搜索以前的帖子!
      

  3.   

    declare @sql
    set @sql='
    declare @a int
    select @a = a from ' + @TableName 
    +' select @a' 
    execute(@sql)