GO コマンドを使用して大規模な SQL スクリプトを実行します
質問: C# プログラムで GO コマンドを含む大規模な SQL スクリプトを実行するにはどうすればよいですか? SqlCommand.ExecuteNonQuery() は GO ステートメントを認識しません。
答え: GO 区切り文字を認識する SQL Server 管理オブジェクト (SMO) を使用します。
サンプルコード:
<code class="language-csharp">public static void Main() { string scriptDirectory = "c:\temp\sqltest\"; string sqlConnectionString = "Integrated Security=SSPI;" + "Persist Security Info=True;Initial Catalog=Northwind;Data Source=(local)"; DirectoryInfo di = new DirectoryInfo(scriptDirectory); FileInfo[] rgFiles = di.GetFiles("*.sql"); foreach (FileInfo fi in rgFiles) { FileInfo fileInfo = new FileInfo(fi.FullName); string script = fileInfo.OpenText().ReadToEnd(); using (SqlConnection connection = new SqlConnection(sqlConnectionString)) { Server server = new Server(new ServerConnection(connection)); server.ConnectionContext.ExecuteNonQuery(script); } } }</code>
代替ライブラリ オプション:
代わりに、GO 区切り文字を含む SQL スクリプトを処理するための Phil Haack のライブラリを検討することもできます。 https://www.php.cn/link/1288625a4bdcf1109ff5adca3bd33753
以上がC# で GO コマンドを使用して大規模な SQL スクリプトを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。