この実行によると、次回の実行時にsp_recompile
オブジェクトが強制的に再コンパイルされます
sp-recompile コマンドを実行した瞬間に再コンパイルする必要があります。これは主に、構文エラーと、ストアド プロシージャが依存するオブジェクトの存在をチェックするためです。
-- SQL 2008 には sys.sp_refreshsqlmodule モジュールがあります...
この実行によると、次回の実行時にsp_recompile
オブジェクトが強制的に再コンパイルされます
sp-recompile コマンドを実行した瞬間に再コンパイルする必要があります。これは主に、構文エラーと、ストアド プロシージャが依存するオブジェクトの存在をチェックするためです。
-- SQL 2008 には sys.sp_refreshsqlmodule モジュールがあります...
おそらくこれを行う最も簡単な方法は、ストアド プロシージャを再展開することです。これにより、(私の知る限り) プロシージャを再コンパイルする必要がなくなります。
これらの行に沿ったもの:
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