2

因此,我编写了一个简单的 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 窗口中打开,但我不知道为什么。

4

1 回答 1

2

我找不到任何方法来使用现有的SSMS(对不起!),但幸运的是,我发现SSMS命令行非常有用。它可以输入server和/或instance与 switch 连接的名称-S。它还使用Windows Authenticationwith switch登录-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();
于 2013-10-12T20:47:43.040 回答