语法检查能通过,但执行说有语法错误,都有哪些原因?常用的排错方法有哪些?谢谢,急死我了,

解决方案 »

  1.   

    调试,或者把关键的地方 print出来
      

  2.   


    存储过程 怎么PRINT?
      

  3.   

    在输出结果之前加一个print试试,看看输出结果是什么。。然后判断
      

  4.   

    可能是动态SQL语句里面的语法错了
      

  5.   

    create proc dd
    as
    print '1'
    godd
    1
      

  6.   

    先不要加try catch,不然的话很难locate到错误的地方
    然后代码执行的每一步都加上error 判断
    发现错误的地方然后print相关调试信息
      

  7.   

    找到地方了
    原因是动态执行语句
    ‘select * from biao where A=’+@a 出错
    A是字符串,执行是@a应该加引号,但是不知道怎么加,还请指教!!
      

  8.   

    'select * from biao where A="’+@a+'"'
      

  9.   

    'select * from biao where A='''+@a +''''
      

  10.   

    ‘select * from biao where A=’+@a 
    A是数值型的话用
    DECLARE @SQL NVARCHAR(4000)
    SET @SQL='select * from biao where A='+LTRIM(@a)+'' 
    EXEC(@SQL)如果是字符型
    DECLARE @SQL NVARCHAR(4000)
    SET @SQL='select * from biao where A='''+@a+'''' 
    EXEC(@SQL)