Exécuter efficacement des scripts SQL volumineux avec des commandes GO en C#
La gestion des bases de données implique souvent l'exécution de scripts SQL contenant des GO
commandes pour séparer les lots. L'utilisation directe de SqlCommand.ExecuteNonQuery()
présente des défis lors du traitement de ces scripts.
Exploiter les objets de gestion SQL Server (SMO)
Une approche robuste utilise les objets de gestion SQL Server (SMO). SMO gère intrinsèquement les séparateurs GO
, simplifiant ainsi l'exécution du script. La classe ServerContext
de SMO fournit une méthode simple à cet effet.
Voici un exemple utilisant SMO :
<code class="language-csharp">using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo; // Establish a connection to the SQL Server instance using (SqlConnection connection = new SqlConnection(sqlConnectionString)) { // Create a Server object Server server = new Server(new ServerConnection(connection)); // Execute the SQL script server.ConnectionContext.ExecuteNonQuery(script); }</code>
Solution alternative : la bibliothèque de Haacked
Si SMO n'est pas réalisable, la bibliothèque de Phil Haack propose une alternative pour gérer les GO
déclarations :
<code class="language-csharp">using Haacked.Sql; // Execute the script using Haacked's library BatchScript.Run(sqlConnectionString, script);</code>
Résumé
SMO ou la bibliothèque Haack fournissent des méthodes efficaces et fiables pour exécuter de gros scripts SQL contenant des GO
commandes en C#, éliminant ainsi les complexités de la séparation manuelle des lots. Choisissez la méthode la mieux adaptée aux dépendances et aux exigences de votre projet.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!