Maison >base de données >tutoriel mysql >Comment puis-je m'assurer qu'une procédure stockée existe sans la supprimer au préalable ?
Assurer l'existence des procédures stockées avant la création
Dans la gestion de bases de données, la création de procédures stockées sur les bases de données client est une tâche courante. Cependant, garantir leur absence avant la création peut être difficile en raison des limitations de la syntaxe T-SQL.
Approche code
La question met en évidence la nécessité de vérifier les procédures stockées existantes avant exécuter une instruction de création. Une solution de contournement suggérée par certains consiste à supprimer tous ceux existants avant de les créer, mais cela n'est pas préférable.
Une solution plus élégante consiste à utiliser la syntaxe IF NOT EXISTS :
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'MyProc') EXEC('CREATE PROCEDURE [dbo].[MyProc] AS BEGIN SET NOCOUNT ON; END') GO ALTER PROCEDURE [dbo].[MyProc] AS ...
Ce script vérifie si la procédure stockée MyProc existe déjà dans la base de données. Sinon, il le crée avec une instruction d'espace réservé. S'il existe, il ignore la création et passe à l'instruction ALTER PROCEDURE, qui met à jour la procédure existante.
Avantages
Cette approche :
Considérations supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!