Share via


sp_recompile (Transact-SQL)

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 a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_recompile [ @objname = ] 'object'

Argumentos

  • [ @objname= ] 'object'
    El nombre calificado o no calificado de un procedimiento almacenado, desencadenador, tabla, vista o función definida por el usuario de la base de datos actual. object es de tipo nvarchar(776) y no tiene valor predeterminado. Si object es el nombre de un procedimiento almacenado, un desencadenador o una función definida por el usuario, la próxima vez que estos se ejecuten 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, los desencadenadores o las funciones definidas por el usuario que hagan referencia a la tabla o vista, se volverán a compilar.

Valores de 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, los desencadenadores o las 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, los desencadenadores y las funciones definidas por el usuario compilados pueden perder eficacia. Al volver a compilar los procedimientos almacenados, los desencadenadores y las funciones definidas por el usuario que actúan sobre una tabla, puede volver a optimizar las consultas.

[!NOTA]

SQL Server vuelve a compilar automáticamente los procedimientos almacenados, los desencadenadores y las 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, los desencadenadores y las 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

Vea también

Referencia

CREATE PROCEDURE (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

Procedimientos almacenados del sistema (Transact-SQL)