我在存储过程中写的一条动态SQL语句在SQL Server 2005中能够执行通过,但是在程序运行时总是报以下错误:',' 附近有语法错误。我的语句是:
exec('update [holiday] set ' + @PermitField + '=' + @PermitValue + ','
+ @IdeaField + '=' + @IdeaValue + ',' + @UserNameField + '=' + @UserNameValue + ' where ID=' + @HolidayID)变量声明未加

解决方案 »

  1.   

    你先把语句输出来看看最终SQL语句是个什么样子的.
      

  2.   

    跟踪程序,求出sql 语句,到查询分析器中执行一下就知道了!!~~~
      

  3.   

    exec('update [holiday] set ' + @PermitField + '=' + @PermitValue + ','都是变量,没有字段名称,他怎么改?
      

  4.   

    @PermitField 这个就是字段名称,是动态的JustLovePro(嘉鑫)
    ----------------------
    说具体些好吗?我不知道该怎么求,是设置断点吗?
      

  5.   

    我晕.什么是输出还不知道???string strSQL="update [holiday] set " + @PermitField + "=" + @PermitValue + ","
    + @IdeaField + "=" + @IdeaValue + "," + @UserNameField + "=" + @UserNameValue + " where ID=" + @HolidayID;response.write "SQL:" + strSQL;
    or
    MessageBox.Show("SQL:" + strSQL);
    exec(strSQL);
    我晕死....
      

  6.   

    mrshelly(Shelly) 
    ----------------------
    这种输出没什么意义吧?因为我要想输出肯定要把格式改成.net许可的,而现在的问题是Sql的语法问题。
      

  7.   

    看来这里人的SQL水平还是不如数据库版的,问题已经解决
      

  8.   

    你得到最终的SQL语句,就容易看出语法错误在哪里了.不是人的水平问题.是代码的调试方法的问题.把输出的SQL语句得到.放到查询分析器里一运行 就知道哪里错了.楼主还是没有讲错误在什么地方.我猜十有八九是里面的某个变量造成了语句出错.