2013-10-12 1 views
2

Итак, я написал простой exe, который будет извлекать файлы sql из ZIP-папки и открывать их в SQL Server Studio. Он отлично работает, за исключением того, что иногда открывается несколько файлов sql, которые затем запускают несколько экземпляров SQL Server. Как я могу открыть все файлы в одном экземпляре?Открыть несколько файлов в существующем экземпляре SQL Server

Это то, что я пытаюсь до сих пор:

foreach (string sqlFile in files) 
{ 
    Process sqlServer; 

    if (Process.GetProcessesByName("Ssms").Length > 0) 
      sqlServer = Process.GetProcessesByName("Ssms")[0]; 
    else 
      sqlServer = new Process(); 

    sqlServer.StartInfo.FileName = sqlFile; 
    sqlServer.Start();              
} 

Иногда файл будет волшебно открыть в существующем окне SQL Server, но я не понял, почему.

+3

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

+0

@JohnSaunders Ах, извините, не понял. Благодарю. – vince88

ответ

2

Я не мог найти никакого способа использовать существующий SSMS (извините!), Но, к счастью, я нашел SSMS командной строки очень полезной. Он может быть снабжен именем server и/или instance для подключения с помощью переключателя -S. Он также входит в систему с Windows Authentication с коммутатором -E. Взгляните на его варианты через SSMS /? и выберите, что лучше подходит для вашей проблемы. В любом случае я протестировал следующий код с подключенным/отключенным ранее подключенным/отключенным ранее SSMS-экземпляром:

string serverName = "myservername";  
var sepratedFiles = string.Join(" ", files.Select(p=>"\"" +p +"\""); 

Process sqlServer = new Process(); 
sqlServer.StartInfo.FileName = "SSMS"; 
sqlServer.StartInfo.Arguments = string.Format("-S {0} {1}", serverName, sepratedFiles); 
sqlServer.Start(); 
+0

Спасибо за быстрый ответ. Я установил по умолчанию SSMS и пробовал ваш подход, а иногда и работает, а иногда и нет. Я думаю, что я сузил его до необходимости подключения к базе данных. Если SQL-сервер не подключен, он откроет несколько окон, иначе файлы откроются в уже подключенном окне. Есть ли способ не устанавливать приложение по умолчанию? Я создаю это как инструмент для некоторых сотрудников. – vince88

+0

@ vince88 Хороший улов. Проверьте мое обновление, пожалуйста. – Alireza

+0

Это действительно близко! Проблема в том, что SSMS открывается, но утверждает, что файлы не могут быть найдены и не будут загружены. Я проверил, и файлы действительно есть. Я думаю, проблема заключается в том, что пути имеют пробелы (например, C: \ Documents and Settings \ ...), потому что, когда я помещаю файлы sql в корневой каталог C: \, они открываются просто отлично. Я собираюсь работать с ним еще, но спасибо за вашу помощь! – vince88

Смежные вопросы