sp_recompile (Transact-SQL)

Вызывает повторную компиляцию хранимых процедур и триггеров при следующем запуске. Для этого из кэша процедур удаляется существующий план, в результате чего при следующем запуске процедуры или триггера создается новый план. В коллекции Приложение SQL Server Profiler вместо события SP:Recompile в журнал записывается событие SP:CacheInsert.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Синтаксис

sp_recompile [ @objname = ] 'object'

Аргументы

  • [ @objname= ] 'object'
    Полное или неполное имя хранимой процедуры, триггера, таблицы или представления в текущей базы данных. Аргумент object имеет тип nvarchar(776) и не имеет значения по умолчанию. Если аргумент object представляет имя хранимой процедуры или триггера, эта процедура или триггер будут перекомпилированы при следующем запуске. Если аргумент object представляет имя таблицы или представления, то все хранимые процедуры и триггеры, которые ссылаются на эту таблицу или представление, будут перекомпилированы при следующем запуске.

Значения кода возврата

0 (успешное завершение) или ненулевое значение (неуспешное завершение)

Замечания

Процедура sp_recompile ищет объект только в текущей базе данных.

Запросы, применяемые хранимыми процедурами и триггерами, оптимизируются только при компиляции. При изменениях базы данных, влияющих на статистику, эффективность компилируемых хранимых процедур и триггеров может понижаться. Путем перекомпиляции хранимых процедур и триггеров, влияющих на таблицу, можно повторно оптимизировать запросы.

Примечание

SQL Server автоматически перекомпилирует хранимые процедуры и триггеры, когда это удобно.

Разрешения

Необходимо разрешение ALTER для объекта.

Примеры

В приведенном ниже примере хранимые процедуры и триггеры, влияющие на таблицу Customer, перекомпилируются при следующем запуске.

USE AdventureWorks2012;
GO
EXEC sp_recompile N'Sales.Customer';
GO

См. также

Справочник

CREATE PROCEDURE (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)