2

この実行によると、次回の実行時にsp_recompileオブジェクトが強制的に再コンパイルされます

sp-recompile コマンドを実行した瞬間に再コンパイルする必要があります。これは主に、構文エラーと、ストアド プロシージャが依存するオブジェクトの存在をチェックするためです。

-- SQL 2008 には sys.sp_refreshsqlmodule モジュールがあります...

4

1 に答える 1

1

おそらくこれを行う最も簡単な方法は、ストアド プロシージャを再展開することです。これにより、(私の知る限り) プロシージャを再コンパイルする必要がなくなります。

これらの行に沿ったもの:

SET @ProcedureName = 'SampleProcedure'

CREATE TABLE #ProcedureContent (Text NVARCHAR(MAX))
INSERT INTO #ProcedureContent
EXEC sp_helptext @ProcedureName

DECLARE @ProcedureText NVARCHAR(MAX)
SET @ProcedureText = ''

SELECT @ProcedureText = @ProcedureText + [Text] FROM #ProcedureContent 

EXEC ('DROP PROCEDURE ' + @ProcedureName);
EXEC (@ProcedureText)

DROP TABLE #ProcedureContent 
于 2011-04-02T08:34:37.443 に答える