Martin - J'ai eu ce même problème. Je suppose que lorsque vous chargez un script avec un ou plusieurs "go", vous obtenez une erreur?
J'ai utilisé SQL DMO dans le passé pour exécuter des scripts avec GO dans ceux-ci. Cela nécessite que SQLDMO soit installé sur votre ordinateur cible.
Une autre option consiste à utiliser la fonction .NET "String.Split (" GO ")" et à boucler le tableau de chaînes résultant, en les exexitant un par un.
Comme ceci:
StreamReader file = File.OpenText("c:\\MyScript.sql");
SqlConnection conn = new SqlConnection("My connection string here...");
string fullCommand = file.ReadToEnd();
string[] splitOptions = new string[] {"go", "GO", "gO", "Go" };
foreach (string individualCommand in fullCommand.Split(splitOptions, StringSplitOptions.RemoveEmptyEntries))
{
SqlCommand comm = new SqlCommand(individualCommand, conn);
comm.ExecuteNonQuery();
}
Disclaimer: Je ne l'ai pas testé le code ci-dessus, mais il devrait vous donner une idée de ce qui est nécessaire :-)
Est-ce que vous voulez exécuter ceux qui sont au même temps ou l'un après l'autre? – eugeneK
Votre question n'est pas claire. Qu'est-ce que vous essayez de réaliser? Exécuter plusieurs commandes en même temps sur différents threads ou juste plusieurs commandes en utilisant le même objet Command? – eladidan
Je veux exécuter un script avec plusieurs commandes par la suite. –