Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Cekap Melaksanakan Skrip SQL Besar dengan Perintah GO dalam C#?

Bagaimana untuk Cekap Melaksanakan Skrip SQL Besar dengan Perintah GO dalam C#?

Susan Sarandon
Lepaskan: 2025-01-20 01:46:13
asal
207 orang telah melayarinya

How to Efficiently Execute Large SQL Scripts with GO Commands in C#?

Gunakan arahan GO untuk melaksanakan skrip SQL yang besar dengan cekap

Apabila melaksanakan skrip SQL besar dalam C# yang mengandungi berbilang kelompok yang dipisahkan oleh pernyataan GO, kaedah SqlCommand.ExecuteNonQuery() terbina dalam mungkin menghadapi ralat semasa memproses pernyataan ini.

Cara yang lebih baik

Pertimbangkan untuk menggunakan SQL Server Management Objects (SMO), yang menyokong pembatas GO. Pendekatan ini lebih cekap dan memberikan pengalaman pelaksanaan yang lancar.

Butiran pelaksanaan

<code class="language-csharp">using Microsoft.SqlServer.Management.Smo;

// 示例代码:
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>
Salin selepas log masuk

Kaedah alternatif

Jika SMO tidak tersedia, pertimbangkan untuk menggunakan perpustakaan yang ditulis oleh Phil Haack untuk mengendalikan pembatas GO:

https://www.php.cn/link/3cdad14c5d7c1e1fa307772a876b42d7

Atas ialah kandungan terperinci Bagaimana untuk Cekap Melaksanakan Skrip SQL Besar dengan Perintah GO dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan