使用GO指令執行大型SQL腳本
問題: 如何在C#程式中執行包含GO指令的大型SQL腳本? SqlCommand.ExecuteNonQuery()無法辨識GO語句。
答案: 使用辨識GO分隔符號的SQL Server Management Objects (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>
替代庫選項:
作為替代方案,您可以考慮Phil Haack專門用於處理包含GO分隔符的SQL腳本的函式庫: https://www.php.cn/link/1288625a4bdcf1109ff5adca3bd33753
以上是如何在 C# 中使用 GO 指令執行大型 SQL 腳本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!