使用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中文网其他相关文章!