Accueil Finances personnelles Comment gérer les conditions SQL - les nuls

Comment gérer les conditions SQL - les nuls

Table des matières:

Vidéo: Tutoriel SQL Server : Gérer la mémoire | video2brain.com 2025

Vidéo: Tutoriel SQL Server : Gérer la mémoire | video2brain.com 2025
Anonim

Vous pouvez faire en sorte que votre programme regarde SQLSTATE après l'exécution de chaque instruction SQL. Il y a plusieurs possibilités pour ce que vous pourriez vouloir faire ensuite. Que faites-vous avec les connaissances que vous gagnez?

  • Si vous trouvez un code de classe 00 , vous ne voulez probablement rien faire. Vous souhaitez que l'exécution se déroule comme prévu.

  • Si vous trouvez un code de classe 01 ou 02 , vous voudrez peut-être prendre des mesures spéciales. Si vous vous attendiez à l'indication "Avertissement" ou "Introuvable", vous souhaiterez probablement laisser l'exécution se poursuivre. Si vous ne vous attendiez pas à l'un ou l'autre de ces codes de classe, vous souhaiterez probablement avoir une branche d'exécution vers une procédure spécifiquement conçue pour gérer le résultat inattendu, mais pas totalement imprévu, d'avertissement ou non trouvé.

  • Si vous recevez un autre code de classe, quelque chose ne va pas. Vous devriez passer à une procédure de gestion des exceptions. La procédure à laquelle vous choisissez de vous connecter dépend du contenu des trois caractères de la sous-classe, ainsi que des deux caractères de classe de SQLSTATE. Si plusieurs exceptions différentes sont possibles, il devrait y avoir une procédure de gestion des exceptions pour chacune d'entre elles, car différentes exceptions nécessitent souvent des réponses différentes.

    Vous pourrez peut-être corriger certaines erreurs ou trouver des solutions. D'autres erreurs peuvent être fatales. personne ne mourra, mais vous devrez peut-être terminer la demande.

Déclarations de gestionnaire

Vous pouvez placer un gestionnaire de conditions dans une instruction composée. Pour créer un gestionnaire de condition, vous devez d'abord déclarer la condition qu'il va gérer. La condition déclarée peut être une sorte d'exception, ou juste quelque chose qui est vrai. Voici quelques conditions possibles.

Condition Description
SQLSTATE VALUE

'xxyyy'

Valeur SQLSTATE spécifique
SQLEXCEPTION Classe SQLSTATE autre que 00, 01 ou 02 > SQLWARNING
classe SQLSTATE 01 NOT FOUND
classe SQLSTATE 02 Voici un exemple de déclaration de condition:

BEGIN DECLARE constraint_violation CONDITION POUR SQLSTATE VALUE '23000'; FIN;

Cet exemple n'est pas réaliste, car généralement l'instruction SQL qui peut provoquer l'apparition de la condition, ainsi que le gestionnaire qui serait appelé si la condition s'est produite, est également incluse dans la structure BEGIN … END.

Actions du gestionnaire et effets du gestionnaire

Si une condition appelle un gestionnaire, l'action spécifiée par le gestionnaire s'exécute. Cette action est une instruction SQL, qui peut être une instruction composée. Si l'action du gestionnaire se termine avec succès, l'effet du gestionnaire s'exécute.Voici une liste des trois effets de gestionnaire possibles:

CONTINUE: Poursuite de l'exécution immédiatement après l'instruction qui a provoqué l'appel du gestionnaire.

  • EXIT: Poursuit l'exécution après l'instruction composée qui contient le gestionnaire.
  • ANNULER: Annule le travail des instructions précédentes dans l'instruction composée, puis continue l'exécution après l'instruction contenant le gestionnaire.

  • Si le gestionnaire peut corriger tout problème invoqué par le gestionnaire, l'effet CONTINUER peut être approprié. L'effet EXIT peut être approprié si le gestionnaire n'a pas résolu le problème, mais les modifications apportées à l'instruction composée n'ont pas besoin d'être annulées. L'effet UNDO est approprié si vous souhaitez renvoyer la base de données à l'état dans lequel elle se trouvait avant l'exécution de l'instruction compound.

Considérons l'exemple suivant:

BEGIN ATOMIC DECLARE constraint_violation CONDITION pour SQLSTATE VALUE '23000'; DECLARE UNDO HANDLER POUR contrainte_violation RESIGNAL; REPLACE INTO students (StudentID, Fname, Lname) VALEURS (: sid,: sfname,: slname); REPLACE INTO roster (ClassID, Class, StudentID) VALEURS (: cid,: cname,: sid); FIN;

Si l'une des instructions INSERT provoque une violation de contrainte, comme essayer d'ajouter un enregistrement avec une clé primaire qui duplique une clé primaire déjà dans la table, SQLSTATE suppose une valeur de '23000', définissant ainsi la condition constraint_violation une vraie valeur.

Cette action force le gestionnaire à ANNULER les modifications apportées aux tables par l'une des commandes INSERT. L'instruction RESIGNAL renvoie le contrôle à la procédure qui a appelé la procédure en cours d'exécution.

Si les deux instructions INSERT s'exécutent avec succès, l'exécution se poursuit avec l'instruction suivant le mot-clé END.

Le mot-clé ATOMIC est obligatoire chaque fois que l'effet d'un gestionnaire est UNDO. Ce n'est pas le cas pour les gestionnaires dont l'effet est CONTINUE ou EXIT.

Comment gérer les conditions SQL - les nuls

Le choix des éditeurs

Comment adapter les normes journalistiques aux blogs de maman - Les nuls

Comment adapter les normes journalistiques aux blogs de maman - Les nuls

Alors que les standards journalistiques sont légèrement différents Diffusion, et les organisations en ligne, ils partagent des éléments communs de véracité, la précision, l'objectivité, l'impartialité, l'équité et la responsabilité publique (c'est une citation adaptée de Wikipedia). Surtout, les standards journalistiques établissent une séparation entre les départements qui génèrent des revenus (ventes de publicité et de sponsoring) et les départements qui développent ...

Comment accepter les commentaires des membres de la communauté en ligne - mannequins

Comment accepter les commentaires des membres de la communauté en ligne - mannequins

Comme gestionnaire de communauté en ligne, vous ne pouvez pas avoir peur pour demander des commentaires parce que vous ne voulez pas entendre de mauvaises nouvelles. La réalité est qu'il n'y a pas de mauvaises réactions. Pourtant, lorsque les commentaires négatifs viennent, parfois vous ne pouvez pas vous empêcher de le prendre personnellement. Vous passez tellement de temps à cultiver votre communauté et à promouvoir ...

Comment ajouter NoFollow Tag - mannequins

Comment ajouter NoFollow Tag - mannequins

La balise NoFollow a été créée comme un moyen de divulguer aux moteurs de recherche que, bien que votre site de blogging maman ajoute un lien vers une destination particulière, il n'approuve pas le site de destination. Initialement utilisé pour les commentaires de blog pour lutter contre les spams de commentaires, il protégeait les blogs de se connecter par inadvertance aux ...

Le choix des éditeurs

Ce qu'il faut faire et ne pas faire pour vos tableaux de bord et rapports Excel - les nuls

Ce qu'il faut faire et ne pas faire pour vos tableaux de bord et rapports Excel - les nuls

Les concepts les plus courants utilisés dans les tableaux de bord et les rapports Excel sont le concept de tendances. Une tendance est une mesure de la variance sur un intervalle défini, généralement des périodes telles que des jours, des mois ou des années. Mais construire des composants tendance pour vos tableaux de bord a quelques choses à faire et à ne pas faire. Utilisez les types de graphiques appropriés pour ...

Emplacements de confiance et macros Excel - mannequins

Emplacements de confiance et macros Excel - mannequins

Si l'idée d'un message Macro Excel à venir (même une fois) désorganise vous, configurez un emplacement de confiance pour vos fichiers. Un emplacement approuvé est un répertoire considéré comme une zone sûre dans laquelle seuls les classeurs approuvés sont placés. Un emplacement de confiance vous permet, à vous et à vos clients, d'exécuter un classeur compatible avec les ...

Transformez une colonne de données en deux dans Excel 2016 - des nuls

Transformez une colonne de données en deux dans Excel 2016 - des nuls

Dans une feuille Excel 2016 que vous devez transformer une colonne de données en deux colonnes. Dans le cas des noms, par exemple, il peut être nécessaire de transformer une colonne de noms en deux colonnes, l'une appelée prénom et l'autre nom de famille. Suivez ces étapes dans un fichier Excel ...

Le choix des éditeurs

Dix domaines à couvrir avec les fournisseurs d'entrepôts de données - les nuls

Dix domaines à couvrir avec les fournisseurs d'entrepôts de données - les nuls

Sont dix domaines que vous devriez Discutez avec n'importe quel fournisseur de produits d'entreposage de données, quelle que soit la catégorie de produit (outil d'aide à la décision, outil de middleware ou SGBDR, par exemple) que vous envisagez d'acheter. Il y a aussi une question spécifique que vous pourriez vouloir poser. Toutes ces questions sont quelque peu bizarres car elles ont peu à voir avec ...

L'avenir des entrepôts de données à l'ère du Big Data - mannequins

L'avenir des entrepôts de données à l'ère du Big Data - mannequins

Commencé à changer et à évoluer avec l'avènement du Big Data. Dans le passé, il n'était tout simplement pas rentable pour les entreprises de stocker l'énorme quantité de données provenant d'un grand nombre de systèmes d'enregistrement. Le manque d'architectures de calcul réparties rentables et pratiques a fait que les données ...

Les catégories principales de Business Intelligence - les nuls

Les catégories principales de Business Intelligence - les nuls

Au début de votre projet d'entreposage de données, ne vous concentrez pas sur le type d'outils dont vous avez besoin - pour le moment. Au lieu de cela, concentrez-vous sur les types de questions que les utilisateurs poseront concernant le contenu de l'entrepôt de données, les types de rapports qui seront exécutés et à quelles fins, et les modèles généraux de traitement qui ...