Supprimer une procédure stockée SQL Server sans erreur

Comment supprimer une procédure stockée SQL Server sans erreur ? Il suffit de tester l’existence de l’objet avant de le supprimer. D’autre part, c’est une bonne pratique de toujours tester l’existence des objets SQL Server. En l’occurrence une procédure stockée avec la commande IF EXISTS.

Supprimer une procédure stockée SQL Server sans erreur (Drop Procedure If Exists)

Premièrement, comment effacer une procédure stockée SQL Server sans générer une erreur ? C’est à dire vérifier si l’objet existe avant de le supprimer avec la commande SQL DROP.

Pour cela, utiliser la fonction T-SQL IF EXISTS. Comme sur cet exemple, sur les versions SQL Server antérieures à la version 2016.

IF EXISTS (
	SELECT 	name 
	FROM 	sysobjects  
	WHERE 	name = 'uspGetClient' 
	AND 	type = 'P'
)
	DROP PROCEDURE uspGetClient
GO

En effet, si la procédure n’existe pas le message d’erreur suivant est affiché, sur les versions Anglaise de SQL Server:

Msg 3701, Level 11, State 5, Line 1
Cannot drop the procedure ‘uspGetClient’, because it does not exist or you do not have permission.

A noter que depuis la version SQL Server 2016, il est possible de tester si une fonction, une table ou une procédure stockée existe et la supprimer avec une seule commande SQL:

DROP PROCEDURE IF EXISTS dbo.uspGetClient;
GO

De plus, voici un exemple de script pour créer une fonction SQL.

Pour aller plus loin, toujours sur le sujet des procédures stockées, voici un tutoriel SQL Server pour modifier une procédure avec un script T-SQL.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*