用连接字符串的吧。 如@PARM=‘UPDATE A SET ‘+@PARM +’ =0 WHERE ID=‘+@ID

解决方案 »

  1.   

    不能这样写,不过可以用动态SQL实现
      

  2.   

    能不能你自己执行下不就知道了,退一万步讲,就算这样不行也可以传标记位置,然后通过字符串拼接成一句sql然后执行
    SET @sql = 'SELECT * FROM '+ @TableName +'WHERE ......'
    EXEC(@sql);
      

  3.   

    DECLARE @Sql NVARCHAR(200);
    DECLARE @parm varchar(4);
    set @parm = 'abc';
      SET @Sql = 'UPDATE tableA SET @parm=0 where biaozhi=111111';
    exec sp_executesql @Sql, N'@parm varchar(4)',@parm这样写没出错,但是就是无法更新为0 
      

  4.   

    DECLARE @Sql NVARCHAR(200);
    DECLARE @parm varchar(4);
    set @parm = 'abc';
      SET @Sql = 'UPDATEtableA SET '+@parm+'=0 where biaozhi=111111';
    EXEC(@sql);这样写竟然成功了!但是我想知道为什么用sp_executesql 的写法,到底是哪里格式不对!