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é