Problem Statement –
Actuellement, l’une des choses les plus irritantes dans SQL, est de vérifier explicitement si un objet existe avant de le supprimer.
Lors de l’écriture d’un script TSQL/procédure stockée, il y a eu plusieurs fois où j’ai essayé de supprimer une colonne/table/trigger/index/user et d’obtenir le message d’erreur redouté –
Nom d’objet invalide ‘object_name’
Ce message d’erreur vous semble-t-il familier?,
Nouvelle syntaxe dans SQL Server 2016 –
Dans le cadre des améliorations TSQL, SQL Server 2016 introduit une nouvelle clause –
DROP IF EXISTS qui supprime conditionnellement la colonne ou la contrainte uniquement si elle existe déjà.
Si l’objet n’existe pas, il ne lancera aucune erreur et l’exécution de TSQL continuera.
DROP OBJECT_TYPE OBJECT_NAME
Cette syntaxe a l’air très simple et propre.,
Cette syntaxe s’applique à – Database, Table, Function, Trigger, Stored Procedure, Column, User, View, Schema, Index , Role
Permet de regarder une démonstration de cette nouvelle syntaxe —
Tout d’abord permet de créer une table de test et d’y insérer quelques enregistrements –
Avant SQL Server 2016, et puis laissez tomber. Il y a deux façons dont nous pouvons le faire., Cependant avec l’arrivée de SQL Server 2016, nous pouvons très facilement effectuer cette opération avec une syntaxe simple –
Nous pouvons également exploiter cette nouvelle instruction à nos requêtes DML, pour supprimer des colonnes / contraintes, selon les besoins., Voir ci —dessous –
J’ai téléchargé l’intégralité du script SQL, utilisé aux fins de cet article, dans ce lien dans GITHUB
Conclusion-
La GOUTTE si EXISTS est une simple amélioration T-SQL dans SQL Server 2016, mais je suis sûr que ce serait l’une des syntaxes les plus fréquemment utilisées dans la vie quotidienne d’un développeur T-SQL.,
Articles connexes sur SQL Server 2016 –
- Masquage dynamique des données dans SQL Server 2016
- Voyage dans le temps dans SQL Server 2016 avec des tables temporelles
- Support JSON intégré dans SQL Server 2016
- Comparer les plans d’exécution dans SQL Server 2016
- Magasin de requêtes dans SQL Server 2016
<