>백엔드 개발 >C++ >C#에서 GO 명령을 사용하여 대규모 SQL 스크립트를 효율적으로 실행하는 방법은 무엇입니까?

C#에서 GO 명령을 사용하여 대규모 SQL 스크립트를 효율적으로 실행하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-20 01:46:13174검색

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

GO 명령을 사용하여 대규모 SQL 스크립트를 효율적으로 실행

GO 문으로 구분된 여러 일괄 처리가 포함된 대규모 SQL 스크립트를 C#에서 실행할 때 기본 제공 SqlCommand.ExecuteNonQuery() 메서드에서 이러한 문을 처리하는 동안 오류가 발생할 수 있습니다.

더 나은 방법

GO 구분 기호를 지원하는 SMO(SQL Server Management Objects) 사용을 고려해 보세요. 이 접근 방식은 더 효율적이며 원활한 실행 환경을 제공합니다.

구현내역

<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를 사용할 수 없는 경우 GO 구분 기호 처리를 위해 Phil Haack이 작성한 라이브러리를 사용하는 것이 좋습니다.

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

위 내용은 C#에서 GO 명령을 사용하여 대규모 SQL 스크립트를 효율적으로 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.