Надеюсь, название моего вопроса достаточно ясное. Я пытаюсь одновременно выполнять сценарии обновления для всех баз данных на одном сервере с использованием объектов управления SQL Server. Моя текущая экспериментальная реализация выглядит так:
var server = new Server(new ServerConnection(new SqlConnection(connString)));
server.ConnectionContext.InfoMessage += new SqlInfoMessageEventHandler(DBOutputReceived);
var databases = server.Databases.Cast<Database>().ToList();
Parallel.ForEach(databases, db => { db.ExecuteNonQuery(script); });
Я даже не уверен, что это возможно при использовании SMO, но это в основном то, что я хочу сделать. Я вижу, что событие ConnectionContext.InfoMessage, скорее всего, будет иметь проблемы, но я не знаю, как решить. Должен ли я вместо этого создать отдельный экземпляр Сервера для каждой параллельной задачи?
Буду признателен за любой совет, который вы можете дать.
Спасибо, Даниэль