Utilisez la commande GO pour exécuter de gros scripts SQL
Question : Comment exécuter un gros script SQL contenant des commandes GO dans un programme C# ? SqlCommand.ExecuteNonQuery() ne reconnaît pas l'instruction GO.
Réponse : Utilisez des objets de gestion SQL Server (SMO) qui reconnaissent le délimiteur GO.
Exemple de code :
<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>
Options de bibliothèque alternatives :
Comme alternative, vous pourriez envisager la bibliothèque de Phil Haack spécifiquement pour gérer les scripts SQL contenant des délimiteurs GO : https://www.php.cn/link/1288625a4bdcf1109ff5adca3bd33753
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!