Heim >Backend-Entwicklung >C++ >Wie führt man große SQL-Skripte effizient mit GO-Befehlen in C# aus?
Verwenden Sie den GO-Befehl, um große SQL-Skripte effizient auszuführen
Beim Ausführen großer SQL-Skripts in C#, die mehrere durch GO-Anweisungen getrennte Batches enthalten, kann es bei der integrierten SqlCommand.ExecuteNonQuery()-Methode bei der Verarbeitung dieser Anweisungen zu Fehlern kommen.
Ein besserer Weg
Erwägen Sie die Verwendung von SQL Server Management Objects (SMO), das GO-Trennzeichen unterstützt. Dieser Ansatz ist effizienter und bietet eine nahtlose Ausführungserfahrung.
Implementierungsdetails
<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>
Alternative Methoden
Wenn SMO nicht verfügbar ist, sollten Sie die von Phil Haack geschriebene Bibliothek für den Umgang mit GO-Trennzeichen verwenden:
https://www.php.cn/link/3cdad14c5d7c1e1fa307772a876b42d7
Das obige ist der detaillierte Inhalt vonWie führt man große SQL-Skripte effizient mit GO-Befehlen in C# aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!