sp_recompile (Transact-SQL)
Provoque la recompilation des procédures stockées et des déclencheurs 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.
S'applique à : SQL Server (SQL Server 2008 via la version actuelle, Base de données SQL Windows Azure (version initiale via la version actuelle. |
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 ou d'une vue 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 ou d'un déclencheur, la procédure stockée ou le déclencheur 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 ou tous les déclencheurs qui font référence à cette table ou cette vue seront recompilées lors de leur prochaine exécution.
Valeurs des codes de retour
0 (réussite) ou un nombre différent de zéro (é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 et les déclencheurs 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 compilées et les déclencheurs peuvent perdre de leur efficacité. En recompilant les procédures stockées et les déclencheurs qui agissent sur une table, vous pouvez réoptimiser les requêtes.
Notes
SQL Server recompile automatiquement les procédures stockées et les déclencheurs 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 et des déclencheurs qui agissent sur la table Customer lors de leur prochaine exécution.
USE AdventureWorks2012;
GO
EXEC sp_recompile N'Sales.Customer';
GO