Share via


sp_recompile (Transact-SQL)

Provoque la recompilation des procédures stockées, des déclencheurs et des fonctions définies par l'utilisateur lors de leur prochaine exécution. Pour cela, il supprime le plan existant du cache de procédures, ce qui force la création d'un nouveau plan lors de la prochaine exécution de la procédure ou du déclencheur. Dans une collection SQL Server Profiler, l'événement SP:CacheInsert est journalisé au lieu de l'événement SP:Recompile.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

sp_recompile [ @objname = ] 'object'

Arguments

  • [ @objname= ] 'object'
    Nom qualifié ou non qualifié d'une procédure stockée, d'un déclencheur, d'une table, d'une vue ou d'une fonction définie par l'utilisateur dans la base de données actuelle. object est de type nvarchar(776) et n'a pas de valeur par défaut. Si object est le nom d'une procédure stockée, d'un déclencheur ou d'une fonction définie par l'utilisateur, la procédure stockée, le déclencheur ou la fonction seront recompilés lors de leur prochaine exécution. Si object est le nom d'une table ou d'une vue, toutes les procédures stockées, déclencheurs ou fonctions définies par l'utilisateur qui font référence à cette table ou cette vue seront recompilés lors de leur prochaine exécution.

Valeurs des codes de retour

0 (réussite) ou un nombre non nul (échec)

Notes

sp_recompile ne recherche un objet que dans la base de données active.

Les requêtes utilisées par les procédures stockées, les déclencheurs et les fonctions définies par l'utilisateur ne sont optimisées que quand elles sont compilées. À mesure que vous ajoutez des index à votre base de données ou que vous y apportez d'autres changements modifiant ses statistiques, les procédures stockées, les déclencheurs et les fonctions définies par l'utilisateur compilés peuvent perdre de leur efficacité. En recompilant les procédures stockées, les déclencheurs et les fonctions définies par l'utilisateur qui agissent sur une table, vous pouvez réoptimiser les requêtes.

[!REMARQUE]

SQL Server recompile automatiquement les procédures stockées, les déclencheurs et les fonctions définies par l'utilisateur quand il est avantageux de le faire.

Autorisations

Nécessite l'autorisation ALTER pour l'objet spécifié.

Exemples

L'exemple suivant engendre la recompilation des procédures stockées, des déclencheurs et des fonctions définies par l'utilisateur qui agissent sur la table Customer lors de leur prochaine exécution.

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

Voir aussi

Référence

CREATE PROCEDURE (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

Procédures stockées système (Transact-SQL)