Как заставить объекты SQL Server 2005 быть перекомпилированными СЕЙЧАС - PullRequest
2 голосов
/ 02 апреля 2011

Согласно этот запуск sp_recompile заставляет объект перекомпилироваться при следующем запуске

Мне нужно, чтобы он был перекомпилирован в момент, когда явыполните команду sp-Recompile, главным образом, для проверки синтаксических ошибок и существования объектов, от которых зависит хранимая процедура.

- в SQL Server 2008 есть модуль sys.sp_refreshsqlmodule ...

1 Ответ

1 голос
/ 02 апреля 2011

Вероятно, самый простой способ сделать это - переустановить хранимую процедуру, что (насколько я знаю) устранит необходимость перекомпиляции процедуры.

Что-то вроде этого:

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 
...