在现有的SQL Server实例中打开多个文件

时间:2013-10-12 20:14:58

标签: c# sql-server

所以我编写了一个简单的exe文件,它将从压缩文件夹中提取sql文件并在SQL Server Studio中打开它们。它工作得很好,除了有时会打开多个sql文件,然后打开多个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窗口中神奇地打开,但我还没弄清楚原因。

1 个答案:

答案 0 :(得分: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();