假如我现在有一个很复杂的存储过程,输入参数后我想得到最终执行的sql语句怎么办?

解决方案 »

  1.   

    sp_helptext '存储过程名' 
      

  2.   

    例如存储过程里有 exec(@ssql)来执行拼接好的SQL语句吧,
    在前面加一句 print @ssql即可把即将执行SQL打印出来.
      

  3.   

    打印出SQL只是辅助进行程序排错之类的工作,
    正常来讲也是不需要这么做的,关键还是程序的逻辑的严密和写法的规范.
      

  4.   

    使用print @sql,
    或者把@sql写入一个SQL日志表中!
      

  5.   

    但问题是那个存储过程是别人写的而且存储过程里面最后不是执行这样的exec(@ssql),而是作了乱七八糟一大堆判断之后执行一些exec(………………)这样的语句,怎么办?
      

  6.   

    exec(.....)括号里面再复杂,只要能执行就是能打印出来的.
    你也跟着 print [.....] 全拷贝出来就行.
      

  7.   


    百度了一下,sp_helptext这个貌似只能查看存储过程吧?我想知道的是输入了不同的参数,它执行什么语句。期待高手出现!
      

  8.   

    这个涉及程序的逻辑了,看你要查哪一段程序.
    打印出SQL只是辅助功能而已,不可过分依赖.
      

  9.   

    使用 profile 进行程序跟踪,选择 跟踪 存储过程语句执行完成事件。
      

  10.   


    非存储过程可以跟踪到,但是存储过程跟踪到的是,传递参数并执行存储过程。不是sql语句!可以修改什么设置跟踪到最后执行的sql语句不?
      

  11.   

    sp_helptext '存储过程名'