首页 > 后端开发 > C++ > 如何在C#中使用GO命令高效执行大型SQL脚本?

如何在C#中使用GO命令高效执行大型SQL脚本?

Susan Sarandon
发布: 2025-01-20 01:46:13
原创
171 人浏览过

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

使用GO命令高效执行大型SQL脚本

在C#中执行包含多个由GO语句分隔的批处理的大型SQL脚本时,内置的SqlCommand.ExecuteNonQuery()方法可能会在处理这些语句时遇到错误。

更佳方法

考虑使用SQL Server Management Objects (SMO),它支持GO分隔符。这种方法更高效,并提供无缝的执行体验。

实现细节

<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>
登录后复制

替代方法

如果SMO不可用,可以考虑使用Phil Haack编写的用于处理GO分隔符的库:

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

以上是如何在C#中使用GO命令高效执行大型SQL脚本?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板