我想问下MS SQL SERVER 用户自定义的存储过程放在哪?是以什么形式存放的?是字符串还是编译好了的东西。还有就是在创建存储过程的时候是否会编译并生成执行计划?求高手解答

解决方案 »

  1.   

    和表一样可以查看和修改的。数据库
    --database Diagrams
    --Tables
    --Views
    --Synonyms
    --Programmability
      --Stored Procedures(这就是储存过程文件夹)
      --Funcions
      

  2.   

    如果是2005放在数据库下有个可编程性那里,有个存储过程,在那里可以找到,存放是以SQL脚本形式。
    创建的存储过程是编译好了的,你可以直接调用 exec 存储过程名  参数1,参数2 (字符型用''引起)
      

  3.   

    SQL Server 中,强制重新编译存储过程的方式有三种:    * sp_recompile 系统存储过程强制在下次执行存储过程时对其重新编译。
        * 创建存储过程时在其定义中指定 WITH RECOMPILE 选项,指明 SQL Server 将不为该存储过程缓存计划,在每次执行该存储过程时对其重新编译。当存储过程的参数值在各次执行间都有较大差异,导致每次均需创建不同的执行计划时,可使用 WITH RECOMPILE 选项。此选项并不常用,因为每次执行存储过程时都必须对其重新编译,这样会导致存储过程的执行变慢。
          如果只想在要重新编译的存储过程而不是整个存储过程中执行单个查询,请在要重新编译的每个查询中指定 RECOMPILE 查询提示。此行为类似于前文所述的 SQL Server 语句级重新编译行为,但除了使用存储过程的当前参数值外,RECOMPILE 查询提示还在编译语句时使用存储过程中本地变量的值。请仅在属于存储过程的查询子集中使用非典型值或临时值时使用此选项。    * 可以通过指定 WITH RECOMPILE 选项,强制在执行存储过程时对其重新编译。仅当所提供的参数是非典型参数,或自创建该存储过程后数据发生显著变化时,才应使用此选项。