所以我编写了一个简单的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窗口中神奇地打开,但我还没弄清楚原因。
答案 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();