Share via


sp_recompile (Transact-SQL)

Hace que se vuelvan a compilar los procedimientos almacenados y los desencadenadores la próxima vez que se ejecuten. Para ello, quita el plan existente de la memoria cache de procedimientos que fuerza la creación de un nuevo plan la próxima vez que se ejecuten el procedimiento o el desencadenador. En una colección de SQL Server Profiler, se registra el evento SP:CacheInsert en lugar del evento SP:Recompile.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL (Transact-SQL)

Sintaxis

        sp_recompile [ @objname= ] 'object'

Argumentos

  • [ @objname= ] 'object'
    El nombre calificado o no calificado de un desencadenador, tabla, vista o procedimiento almacenado de la base de datos actual. object es de tipo nvarchar(776) y no tiene ningún valor predeterminado. Si object es el nombre de un desencadenador o procedimiento almacenado, la próxima vez que éste se ejecute se volverá a compilar. Si object es el nombre de una tabla o vista, la próxima vez que se ejecuten todos los procedimientos almacenados o desencadenadores que hagan referencia a la tabla o vista, se volverán a compilar.

Valores del código de retorno

0 (correcto) o un número distinto de cero (error)

Comentarios

sp_recompile busca un objeto solo en la base de datos actual.

Las consultas que utilizan los procedimientos almacenados o desencadenadores solo se optimizan cuando se compilan. A medida que se crean índices o se realizan otros cambios que afectan a las estadísticas de la base de datos, los procedimientos almacenados y desencadenadores compilados pueden perder eficacia. Al volver a compilar los procedimientos almacenados y desencadenadores que actúan sobre una tabla, puede volver a optimizar las consultas.

Nota

SQL Server vuelve a compilar automáticamente los procedimientos almacenados y desencadenadores cuando esto supone una mejora.

Permisos

Requiere el permiso ALTER en el objeto especificado.

Ejemplos

El siguiente ejemplo provoca que los procedimientos almacenados y desencadenadores que actúan en la tabla Customer se vuelvan a compilar la próxima vez que se ejecuten.

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