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 중국어 웹사이트의 기타 관련 기사를 참조하세요!