ホームページ >データベース >mysql チュートリアル >SQL Server スクリプトの実行を途中で停止するにはどうすればよいですか?

SQL Server スクリプトの実行を途中で停止するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-09 07:07:46471ブラウズ

How Can I Stop a SQL Server Script from Running Prematurely?

SQL Server でのスクリプト実行の早期終了

SQL Server では、スクリプト ロジックの検証または検索が失敗した場合、スクリプトの実行を早期に停止する必要がある場合があります。これを実現するには 2 つの方法があります:

1.RAISERROR メソッド

raiseerror ステートメントを使用すると、重大度 20 以上のエラーを発生させ、WITH LOG オプションを指定することで、スクリプトの実行を終了できます。例は次のとおりです:

<code class="language-sql">raiserror('发生致命错误', 20, -1) with log</code>

これにより、現在の接続が終了し、残りのスクリプトが実行されなくなります。この方法には sysadmin ロールの権限が必要であることに注意してください。

2. NOEXEC メソッド

GO ステートメントで使用するもう 1 つの方法は、noexec をオンに設定することです。これにより、残りのスクリプトの実行が無効になります。例:

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

print '致命错误,脚本将不会继续!'
set noexec on

print 'ho'
go</code>

このメソッドは接続を終了しませんが、noexec が再度閉じられるまで後続のコードの実行をスキップします。 SQL Server Management Studio では、実行を再開するために set noexec off コマンドの発行が必要になる場合があります。

これらの方法を使用する場合は、次の考慮事項に留意してください:

  • RAISERROR には sysadmin 権限が必要であり、データベース接続が失われる可能性があります。
  • sysadmin としてログインしていない場合、RAISERROR は失敗し、スクリプトは実行を継続します。
  • NOEXEC には sysadmin 権限は必要ありませんが、後続のコードを実行する前に明示的に無効にする必要があります。

以上がSQL Server スクリプトの実行を途中で停止するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。