C# の GO コマンドを使用して大規模な SQL スクリプトを効率的に実行する
データベース管理では、バッチを分割するために GO
コマンドを含む SQL スクリプトを実行することがよくあります。 SqlCommand.ExecuteNonQuery()
を直接使用すると、これらのスクリプトを扱うときに問題が発生します。
SQL Server 管理オブジェクト (SMO) の活用
堅牢なアプローチでは、SQL Server 管理オブジェクト (SMO) を利用します。 SMO は本質的に GO
区切り文字を処理し、スクリプトの実行を簡素化します。 SMO 内の ServerContext
クラスは、この目的のための簡単なメソッドを提供します。
SMO を使用した例を次に示します:
<code class="language-csharp">using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo; // Establish a connection to the SQL Server instance using (SqlConnection connection = new SqlConnection(sqlConnectionString)) { // Create a Server object Server server = new Server(new ServerConnection(connection)); // Execute the SQL script server.ConnectionContext.ExecuteNonQuery(script); }</code>
代替解決策: Haacked のライブラリ
SMO が実現できない場合、Phil Haack のライブラリは GO
ステートメントを管理するための代替手段を提供します。
<code class="language-csharp">using Haacked.Sql; // Execute the script using Haacked's library BatchScript.Run(sqlConnectionString, script);</code>
概要
SMO または Haack のライブラリは、C# で GO
コマンドを含む大規模な SQL スクリプトを実行するための効率的で信頼性の高い方法を提供し、手動によるバッチ分離の複雑さを排除します。 プロジェクトの依存関係と要件に最も適した方法を選択してください。
以上がC# で GO コマンドを使用して大規模な SQL スクリプトを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。