Maison >base de données >tutoriel mysql >Comment puis-je arrêter l'exécution d'un script SQL Server en cours de processus ?

Comment puis-je arrêter l'exécution d'un script SQL Server en cours de processus ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-09 07:27:41305parcourir

How Can I Stop a SQL Server Script's Execution Mid-Process?

Interruption de l'exécution du script SQL dans SQL Server

Les scripts SQL volumineux ou complexes nécessitent parfois une interruption immédiate si des conditions inattendues surviennent. SQL Server propose plusieurs façons d'y parvenir.

Utiliser raiserror

L'instruction raiserror met fin brusquement à l'exécution du script en déclenchant une erreur critique. Un niveau de gravité de 20 ou plus, associé à l'option WITH LOG, est nécessaire :

<code class="language-sql">raiserror('Critical error encountered', 20, -1) with log</code>

Cette action ferme la connexion à la base de données, interrompant ainsi le traitement du script.

Employer noexec

La commande noexec définit un indicateur, empêchant l'exécution des instructions suivantes. Contrairement à raiserror, il ne met pas fin à la connexion ; l'exécution ne reprend qu'après la désactivation de noexec :

<code class="language-sql">print 'Initial message'
go

print 'Error detected; script halted!'
set noexec on

print 'This message will not be displayed.'
go

-- End of script
set noexec off -- Execution resumes here</code>

Remarques importantes :

  • raiserror demande des autorisations administratives et déconnecte la base de données.
  • noexec n'affecte que la session en cours sans se déconnecter.
  • Les deux méthodes fonctionnent correctement avec les GO séparateurs de lots.

La meilleure méthode dépend des besoins spécifiques et du contexte de votre script SQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn