Option SSMS pour vérifier si un objet existe

Comment ajouter ou supprimer l’option pour vérifier si un objet existe depuis SQL Server Management Studio (SSMS) ? Pour ajouter dynamiquement le contrôle d’existence avant de générer l’instruction pour créer les objets SQL comme les tables, les vues, les fonctions ou les procédures stockées, c’est simple. Il suffit d’activer l’option SSMS pour vérifier l’existence des objets dans votre logiciel SQL Server Management Studio.

Par exemple, lorsque vous développez des procédures stockées SQL Server, vous devez d’abord vérifier leur existence, pour éviter ces messages d’erreur. C’est très utile lorsque vous devez modifier de grosses procédures stockées et les déployer plusieurs fois sur le serveur à des fins de tests.

Options pour ajouter un script pour vérifier si l’objet existe dans SQL Server Management Studio (SSMS)

Pour une table, une vue, une procédure stockée ou une fonction, le message d’erreur est similaire :

Msg 2714, Level 16, State 6, Line 1
Il existe déjà un objet nommé ‘Your-Table’ dans la base de données.

Pour cela, il suffit d’activer cette option de SSMS pour vérifier l’existence de l’objet :

  1. Dans le menu supérieur gauche, cliquer sur “Outils > Options“.
  2. Dans la section “SQL Server Object Explorer“, choisir “Scripting“.
  3. Ensuite, régler l’option “Check for object existence” sur “True“.
Option SSMS pour vérifier si un objet existe (Check for object existence)
Option SSMS pour vérifier si un objet existe (Check for object existence)

Il s’agit alors d’ajouter ce contrôle d’existence avant la création du code de votre procédure. Pour générer le code, faites un clic droit sur n’importe quel objet, par exemple, une procédure stockée et sélectionner l’option CREATE TO puis nouvelle fenêtre d’éditeur SSMS.

IF NOT EXISTS (
     SELECT * FROM sys.objects 
     WHERE object_id = OBJECT_ID(N'[dbo].[YourStoredProcedure]') 
          AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[YourStoredProcedure] AS SELECT 1 as [One]' 
END
GO

ALTER PROCEDURE [dbo].YourStoredProcedure 
AS 
BEGIN
SELECT GETDATE() as [CurrentDate]
END 
GO

Note : Dans le cas où l’objet n’existe pas, il s’agit simplement de créer une procédure stockée vide. En effet, et en utilisant simplement une instruction alter sur le même objet, afin de limiter la longueur du script.

Il est très utile d’utiliser des scripts sans erreur pour une procédure stockée. Par exemple parce qu’il n’est pas nécessaire de manipuler un contenu de données ou une structure de données, comme pour les tables par exemple.

En effet, pour les tables et surtout les données sensibles ou critiques, il est obligatoire de gérer un script de migration, de générer et de sauvegarder le contenu, avant de supprimer et créer une nouvelle table SQL.

C’est donc une bonne pratique pour les projets SQL que de vérifier si l’objet existe dans la base de données SQL. Générez donc les scripts avec SSMS ou manuellement et utilisez-les. Dans certains cas, il est utile d’arrêter le script si la table existe déjà pour éviter de supprimer une table par erreur.

Cette section du blog est consacrée aux erreurs SQL Server courantes, comme le l’erreur de dépassement arithmétique lors de la conversion par exemple.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*