Gunakan arahan GO untuk melaksanakan skrip SQL yang besar
Soalan: Bagaimana untuk melaksanakan skrip SQL besar yang mengandungi arahan GO dalam program C#? SqlCommand.ExecuteNonQuery() tidak mengenali pernyataan GO.
Jawapan: Gunakan SQL Server Management Objects (SMO) yang mengenali pembatas GO.
Kod sampel:
<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>
Pilihan perpustakaan alternatif:
Sebagai alternatif, anda mungkin mempertimbangkan perpustakaan Phil Haack khusus untuk mengendalikan skrip SQL yang mengandungi pembatas GO: https://www.php.cn/link/1288625a4bdcf1109ff5adca3bd33753
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Skrip SQL Besar dengan Perintah GO dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!