sp_recompile (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure

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

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

Синтаксис

  
sp_recompile [ @objname = ] 'object'  

Аргументы

[ @objname =] "объект"
Уточненное или не уточненное имя хранимой процедуры, триггера, таблица, представления или определяемой пользователем функции в текущей базе данных. Object имеет тип nvarchar (776) и не имеет значения по умолчанию. Если объект является именем хранимой процедуры, триггера или определяемой пользователем функции, хранимая процедура, триггер или функция будет перекомпилироваться при следующем запуске. Если объект является именем таблицы или представления, то все хранимые процедуры, триггеры или определяемые пользователем функции, которые ссылаются на таблицу или представление, будут перекомпилированы при следующем запуске.

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

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

Remarks

Процедура 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)