@uvotes没申明,declare一下,或者在参数里面传一下。

解决方案 »

  1.   

    听说sp_executesql运行之后变量就无效,不知道是不是这个原因
      

  2.   

     把上面的声明变量的地方写在这个上面!//应该是这句错了                     set @uvotes=@votes+1;
      

  3.   

    太多了,不想看,如果是楼上说的set @uvotes=@votes+1;这句出错,那么你看看在这句之前你有没有对@votes赋初始值了。没赋值就是错的。
      

  4.   

    刚刚打印了一下 @votes这个值 是有值的 你可以只看这句和上面的定义变量
      

  5.   

    感谢大家 已经解决了是这个 exec sp_executesql @sql  动态执行SQL 语句的问题 必须后面得带参数前提是把SQL语句和参数都写在''引号里 如果参数是‘+@参数+’写的话 exec sp_executesql @sql 就不用带参数