sp_recompile (Transact-SQL)

Se aplica a: síSQL Server (todas las versiones admitidas) SíAzure SQL Database

Hace que se vuelvan a compilar los procedimientos almacenados, los desencadenadores y las funciones definidas por el usuario 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 de tema Convenciones de sintaxis de Transact-SQL

Sintaxis

  
sp_recompile [ @objname = ] 'object'  

Argumentos

[ @objname = ] 'object'
El nombre calificado o no calificado de un desencadenador, tabla, vista, procedimiento almacenado o función definida por el usuario de la base de datos actual. El objeto es nvarchar(776), sin ningún valor predeterminado. Si object es el nombre de un procedimiento almacenado, un desencadenador o una función definida por el usuario, el procedimiento almacenado, el desencadenador o la función se volverán a compilar la próxima vez que se ejecute. Si object es el nombre de una tabla o vista, todos los procedimientos almacenados, desencadenadores o funciones definidas por el usuario que hacen referencia a la tabla o vista se volverán a compilar la próxima vez que se ejecuten.

Valores de código de retorno

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

Observaciones

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

Las consultas que utilizan los procedimientos almacenados o desencadenadores y funciones definidas por el usuario 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, desencadenadores y funciones definidas por el usuario 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, desencadenadores y funciones definidas por el usuario cuando esto supone una mejora.

Permisos

Requiere el permiso ALTER en el objeto especificado.

Ejemplos

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

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

Consulte también

CREATE PROCEDURE (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)