可以的!Yang_(扬帆破浪),给点信誉分,怎么样!

解决方案 »

  1.   

    哦?还可以预编译的?是手工的还是SQLSERVER自动编译的?
      

  2.   

    在STORED PROCEDURE 中定义WITH RECOMPILE的选项,SP结束后SQL SERVER会立即从高速缓存中清除以释放占用的内存空间,如果没有RECOMPILE选项,SQLSERVER也会重新编译SP.一般很少用的SP要加RECOMPILE的选项.BELOW IS A EXAMPLE:USE pubs
    IF EXISTS (SELECT name FROM sysobjects
          WHERE name = 'titles_by_author' AND type = 'P')
       DROP PROCEDURE titles_by_author
    GO
    CREATE PROCEDURE titles_by_author @@LNAME_PATTERN varchar(30) = '%'
    WITH RECOMPILE
    AS
    SELECT RTRIM(au_fname) + ' ' + RTRIM(au_lname) AS 'Authors full name',
       title AS Title
    FROM authors a INNER JOIN titleauthor ta 
       ON a.au_id = ta.au_id INNER JOIN titles t
       ON ta.title_id = t.title_id
    WHERE au_lname LIKE @@LNAME_PATTERN
    GO
      

  3.   

    leimin(黄山光明顶) 说的可能有出入,with recompile是预编译选项,意思是对sp重新编译,替代上一次的编译,一般对sp修改较大的时候,可以带上with recompile项执行一次,让他重新编译一下就可以了。