SQL Server si existe une table de dépôt

SQL Server si existe une table de dépôt

Comme vous le savez probablement déjà, vous ne pouvez pas créer une table dans une base de données si une table avec un nom similaire existe dans la base de données. Pour surmonter cela, vous pouvez vérifier si le tableau s'il existe, et s'il est vrai, déposez la table et créez une nouvelle table.

Dans cet article, vous apprendrez à utiliser les opérations conditionnelles SQL. Nous discuterons de la façon de vérifier si un tableau existe et, si vrai, déposez-le.

Exigences

Nous avons testé et implémenté les exemples dans une instance SQL Server dans ce guide. Si vous souhaitez reproduire un environnement similaire, assurez-vous d'avoir:

  1. Microsoft SQL Server 2019
  2. SQL Server Management Studio 18
  3. Modifier les autorisations sur votre base de données cible

Une fois que vous avez les exigences spécifiées ci-dessus, nous pouvons poursuivre le tutoriel.

Bases

Avant de apprendre à ajouter une logique conditionnelle avant de laisser tomber une table, voyons ce qui se passe lorsque vous essayez de laisser tomber une table inexistante dans une base de données.

Considérez l'exemple de requête ci-dessous:

Utiliser SalesDB;
Drop Table DOS_NOT_EXIST;

Si nous essayons d'exécuter la requête ci-dessus, SQL Server renvoie une erreur MSG 3701:

Condition Logique - Méthode 1

La première méthode que vous pouvez utiliser lorsque vous devez supprimer une table si elle existe est la goutte si il existe une question. Cette requête est uniquement disponible dans SQL Server Version 2016 et supérieur.

La syntaxe est comme:

Table de dépôt [si existe] db_name.schéma_nom.tbl_name;

La requête vérifiera si la table existe et, si elle est vraie, déposez-la; Sinon, ignorez l'instruction DROP.

Par exemple:

Utiliser SalesDB;
Tableau de dépôt s'il existe des employés;

Si la table existe, SQL tentera de le laisser tomber.

N'oubliez pas que les règles SQL pour laisser tomber une table s'appliquent toujours, même lors de l'utilisation de la goutte si il existe une question.

Méthode 2 - ID d'objet

La deuxième méthode consiste à utiliser la fonction object_id (). La fonction renvoie un ID d'objet si le nom spécifié existe.

L'exemple de code ci-dessous vous montre comment utiliser la fonction object_id () pour ajouter une logique conditionnelle lors de la suppression d'un tableau.

Utiliser SalesDB;
Si object_id (n'dbo.Employés ', n'u') n'est pas nul
Table de dépôt [dbo].Employés;

Vous pouvez en savoir plus sur la fonction object_id () dans la ressource ci-dessous:

SQL Server Object_id () Docs de fonction.

Méthode 3 - Schéma d'information

Nous pouvons également utiliser le schéma d'information SQL Server pour interroger si une table existe. Un exemple de requête est comme indiqué ci-dessous:

Utiliser SalesDB;
Si existe (
Sélectionnez * dans Information_Schema.Tableaux où table_name = 'employés' et table_schema = 'dbo')
Table de dépôt [dbo].[Employés];

Dans l'exemple ci-dessus, nous utilisons le schéma d'information pour vérifier si un tableau spécifié existe.

Fermeture

En utilisant ce guide, vous avez découvert diverses façons d'ajouter une logique conditionnelle lors de la suppression d'une table dans SQL Server. L'ajout de déclarations conditionnelles vous permet d'éviter les erreurs dans les scripts SQL automatisés.