Modification du comportement de sqlcmd affectant la gestion des erreurs de requête

Voir les catégories

Modification du comportement de sqlcmd affectant la gestion des erreurs de requête

2 min de lecture

Marché #

Suite aux récentes mises à jour du mssql-tools Dans ce package, les utilisateurs peuvent rencontrer un comportement inattendu lors de l'exécution de requêtes avec sqlcmdExemple typique de commande :

/usr/local/relianoid/app/libexec/sqlcmd -S -U -P -Q "SELECT COUNT(*) FROM TABLE_0;"

Dans certains cas, les erreurs de requête ne sont pas correctement renvoyées comme des échecs de commande, ce qui peut avoir un impact sur les scripts, l'automatisation ou les processus de surveillance (tels que les contrôles d'intégrité de FarmGuardian) qui reposent sur les codes de sortie.

Causes #

Ce problème est dû à un changement de comportement dans le sqlcmd utilitaire, inclus dans le mssql-tools paquet.

Par défaut, sqlcmd:

  • Affiche les erreurs SQL sur la sortie standard (stdout).
  • Le ne renvoie pas un code de sortie différent de zéro lorsqu'une requête échoue

Cela signifie que même si la requête SQL rencontre une erreur, la commande peut tout de même apparaître comme réussie du point de vue du script.

Solution #

Pour garantir que les erreurs de requêtes SQL sont correctement gérées et renvoyées comme des échecs de commande, incluez le -b paramètre dans la sqlcmd commander.

Commande mise à jour :

/usr/local/relianoid/app/libexec/sqlcmd -b -S -U -P -Q "SELECT COUNT(*) FROM TABLE_0;"

Fonctionnement #

Le -b l'option modifie sqlcmd comportement comme suit :

  • Causes sqlcmd à sortie avec un code d'état différent de zéro si une erreur se produit
  • Envoie des messages d'erreur à erreur standard (stderr) au lieu de la sortie standard
  • Permet une détection correcte des erreurs dans les scripts et les outils d'automatisation

Pourquoi est-ce important #

Sans le -b drapeau:

  • Les systèmes de surveillance peuvent ne pas détecter les requêtes ayant échoué.
  • Les scripts d'automatisation peuvent continuer à s'exécuter malgré les erreurs
  • Le dépannage devient plus difficile en raison d'états de réussite trompeurs

En ajoutant -b, vous assurez :

  • Gestion précise des erreurs
  • Comportement de script fiable
  • Intégration adéquate avec le système de surveillance et d'alerte

Notes complémentaires #

  • Ce comportement est spécifique à sqlcmd outil du mssql-tools paquet
  • Les scripts existants doivent être revus et mis à jour en conséquence.
  • Aucune modification n'est requise côté serveur SQL.

Résumé #

Un changement de sqlcmd Ce comportement peut empêcher que les erreurs SQL soient correctement signalées. L'ajout de -b Ce paramètre garantit que les échecs de requêtes sont correctement propagés via les codes de sortie et les messages d'erreur, assurant ainsi une automatisation et une surveillance fiables.

📄 Téléchargez ce document au format PDF #

    E-MAIL: *

    Sécurité accrue. Efforts réduits. Succès durable. Meilleurs Docs