Compartilhar via


sp_recompile (Transact-SQL)

Faz com que procedimentos armazenados e gatilhos sejam recompilados na próxima execução. Isso é feito com a remoção do plano existente do cache de procedimento que força um novo plano a ser criado na próxima vez que o procedimento ou gatilho é executado. Em uma coleção SQL Server Profiler, o evento SP:CacheInsert é registrado em log em vez do evento SP:Recompile.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

sp_recompile [ @objname = ] 'object'

Argumentos

  • [ @objname= ] 'object'
    O nome qualificado ou não qualificado de um procedimento armazenado, um gatilho, uma tabela ou uma exibição no banco de dados atual. object é nvarchar(776), sem valor padrão. Se object for o nome de um procedimento armazenado ou gatilho, o procedimento armazenado ou gatilho será recompilado na próxima vez em que for executado. Se object for o nome de uma tabela ou exibição, todos os procedimentos armazenados ou gatilhos que fizerem referência à tabela ou exibição serão recompilados na próxima vez em que forem executados.

Valores do código de retorno

0 (êxito) ou um número diferente de zero (falha)

Comentários

sp_recompile procura um objeto apenas no banco de dados atual.

As consultas usadas por procedimentos armazenados e gatilhos são otimizadas apenas quando são compiladas. Como índices ou outras alterações que afetam as estatísticas são feitos no banco de dados, os procedimentos armazenados compilados e os gatilhos podem perder a eficiência. Recompilando procedimentos armazenados e gatilhos que agem em uma tabela, você pode reotimizar as consultas.

Dica

O SQL Server recompila procedimentos armazenados e gatilhos automaticamente quando for vantajoso fazer isso.

Permissões

Exige permissão ALTER no objeto especificado.

Exemplos

O exemplo a seguir faz com que procedimentos armazenados e gatilhos que agem na tabela Customer sejam recompilados da próxima vez que forem executados.

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

Consulte também

Referência

CREATE PROCEDURE (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

Procedimentos armazenados do sistema (Transact-SQL)