Partager via


SR0016 : Évitez d'utiliser sp_ comme préfixe pour les procédures stockées

Id de la règle

SR0016

Catégorie

Microsoft.Naming

Modification avec rupture

Oui

Cause

Une ou plusieurs de vos procédures stockées a sp_ comme préfixe.

Description de la règle

Dans SQL Server, le préfixe sp_ désigne des procédures stockées système. Si vous utilisez ce préfixe pour vos procédures stockées, le nom de votre procédure peut être en conflit avec le nom d'une procédure stockée système qui sera créée dans le futur. Si un tel conflit se produit, votre application peut s'arrêter si votre application fait référence à la procédure sans qualifier la référence par schéma. Dans cette situation, le nom sera lié à la procédure système et non pas à votre procédure.

Comment corriger les violations

Pour résoudre ce problème, vous devez remplacer sp_ par un préfixe différent pour désigner des procédures stockées d'utilisateur, ou vous ne devez utiliser aucun préfixe du tout. Vous devez envisager d'utiliser la refactorisation de base de données pour mettre à jour le nom de toute procédure qui génère cet avertissement. En utilisant la refactorisation de base de données, vous pouvez mettre à jour non seulement le nom de chaque procédure mais également toutes les références à cette procédure dans tout votre projet de base de données. Pour plus d'informations, consultez Renommer toutes les références à un objet de base de données.

Quand supprimer les avertissements

Vous pouvez supprimer cet avertissement si vous ne pouvez pas modifier les applications qui appellent votre procédure stockée.

Exemple

Dans le premier exemple, le nom de la procédure entraînera l'émission de cet avertissement. Dans le deuxième exemple, la procédure utilise un préfixe usp_ au lieu de sp_ et évite l'avertissement.

CREATE PROCEDURE [dbo].[sp_procWithWarning]
(
@Value1 INT,
) 
AS 
BEGIN
-- Additional statements here
RETURN 0;
END

CREATE PROCEDURE [dbo].[usp_procFixed]
(
@Value1 INT,
) 
AS 
BEGIN
-- Additional statements here
RETURN 0;
END

Voir aussi

Concepts

Analyse du code de base de données pour en améliorer la qualité