如何只在一个ssms实例中打开多个.sql文件

时间:2011-08-19 14:50:12

标签: sql database sql-server-2008 ssms

我是DBA,新的服务器盒运行带有SQL Server 2008和SQL Server Management Studio的Windows Server 2008 Enterprise SP1。

在Visual Studio中使用包含大量.sql文件的数据库解决方案时,我在上一个方框中曾经双击.sql文件,它们在同一个SSMS实例中打开(如果已经打开)。但是(即使在新框中具有完全相同的安装)我现在在双击每个sql文件时获得一个新的SSMS实例。它非常痛苦.sql - 一个SSMS实例,所以我开始研究它。

到目前为止我一直在尝试:

1)右键单击.sql文件> “打开方式”选项> “添加”选项> “程序名称:C:\ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \ VSShell \ Common7 \ IDE \ Ssms.exe”和“友好名称:SQL”> “好的”> “设为默认”。不起作用。还有一个sql - 一个ssms实例。

2)Perfomed Run> regedit>并修改HKEY_CLASSES_ROOT \ sqlwb.sql.9.0 \ Shell \ Open \ Command的值数据,并用“%1”替换/ dde。不工作

3)右键单击.sql文件> “打开方式”选项> “添加”选项> “程序名称:explorer.exe”和“友好名称:资源管理器”> “好的”> “设为默认”。不起作用。双击.sql文件时,记事本会附带脚本内容。

4)像这样的一些页面

http://social.msdn.microsoft.com/Forums/en/sqltools/thread/ac2f39c5-66e5-495c-b7a6-47e743853baf

要求更改文件关联,但在打开Windows资源管理器>时工具>文件夹选项...我发现没有“文件类型”选项卡。多烦啊!

有人可以帮助我吗?我的病人真的不见了。

提前致谢

10 个答案:

答案 0 :(得分:16)

在我的大部分工作日都在寻找解决方案后,我终于找到了它。感谢上帝,我几乎没有遇到这个问题。希望它能帮助别人!!!

更新:链接域已过期,所以这就是它所说的:

  

考虑结果通常是如何集成Microsoft工具   告诉Visual Studio使用Sql打开SQL文件时会感到沮丧   服务器管理工​​作室(SSMS)。我真的不喜欢使用Visual   工作室编辑T-SQL文件但过去,在我发现之前   提示,我打开的每个SQL文件都会在SSMS的新实例中打开。尝试   它:

     
      
  1. 打开包含SQL文件的解决方案
  2.   
  3. 右键单击任何SQL文件,然后选择“打开方式...”
  4.   
  5. 点击“添加”
  6.   
  7. 浏览到“C:\ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \ VSShell \ Common7 \ IDE \ Ssms.exe”或者如果你是   运行x64 Windows“C:\ Program Files(x86)\ Microsoft SQL   Server \ 100 \ Tools \ Binn \ VSShell \ Common7 \ IDE \ Ssms.exe“,然后单击”确定“
  8.   
  9. 点击“设为默认值”,然后点击“确定”
  10.         

    现在打开多个SQL文件。每次你得到一个不同的实例   SSMS开通了。太痛苦了!

         

    注意:整篇文章适用于SQL 2005,只需用SSMS替换即可   SQLWB。

         

    你如何解决这个问题?重复上面的步骤1-3,但在步骤#4输入   以下值:

         
        
    • 程序名称:“explorer.exe”
    •   
    • 友好名称:“Windows资源管理器”
    •   
         

    重复上面的步骤#5(设置为默认值),然后单击“确定”。现在,打开   其他文件。它们都应该在SSMS的同一个实例中打开。

         

    似乎Visual Studio向SSMS.exe发出命令   包括在解决方案资源管理器中选择的文件的路径。它是   直到SSMS检查新实例,它没有。但是当你   将文件名传递给资源管理器,它将在同一个实例中打开。

         

    QUIRK警告!

         

    如果SSMS尚未打开,则尝试打开第一个文件(不是   第一次,但每次从Visual中打开一个SQL文件   Studio和SSMS尚未打开)SSMS将打开,但您的文件将会打开   不。第二次单击该文件,这次将打开文件。   不要让我解释它只是(我不明白为什么)。   结论

         

    告诉Visual Studio SSMS是默认编辑器时的结果   是有道理的,但我不明白为什么当你说出来时会有所不同   探险家打开它。也许如果我是Windows开发人员而不是   网站开发人员我会知道答案。但不管怎样,现在你知道了。   享受。

答案 1 :(得分:10)

之前我遇到过这个问题,我发现有一个简单的解决方案 - >只需检查您的SSMS是否在“以管理员身份运行此程序”选项(右键单击快捷方式图标 - >属性 - > Compability - >权限级别)。如果是,请取消选中该选项并尝试双击sql文件。

希望这有帮助。

答案 2 :(得分:2)

已经多次报告过类似的问题,但他们没有解决这个问题:

http://connect.microsoft.com/VisualStudio/feedback/details/105575/multiple-instances-of-sqlwb-exe-when-management-studio-set-as-default-editor

http://connect.microsoft.com/SQLServer/feedback/details/622181/multiple-ssms-open-for-seperate-sql-files

http://connect.microsoft.com/SQLServer/feedback/details/680761/a-new-instance-of-ssms-is-opened-when-trying-to-open-a-tsql-file-even-when-an-instance-is-running

在安装SQL Server后,您是否安装了Visual Studio(或任何Visual Studio组件)

我的猜测是Connect项目不会被修复 - SQL会责怪Visual Studio,Visual Studio会责怪SQL,而且这些项目将保持打开...

所以我建议这样做:从程序和功能运行SQL Server的修复,然后重新应用最新的SQL Server 2008(SP2)服务包。

“文件类型”界面也从“工具/文件夹选项”界面移动到“控制面板”。进入控制面板>默认程序> “将文件类型或协议与程序相关联。”但是,它似乎没有选项来添加命令行选项,如“%1”或/ dde。

答案 3 :(得分:1)

尝试添加这些reg键,但请确保将/ dde放回:

[HKEY_CLASSES_ROOT\sqlwb.sql.9.0\Shell\Open\ddeexec]
@="Open(\"%1\")"

对于记录,这是我对该部分的整个导出:

[HKEY_CLASSES_ROOT\sqlwb.sql.9.0\Shell\Open]

[HKEY_CLASSES_ROOT\sqlwb.sql.9.0\Shell\Open\Command]
@="\"C:\\Program Files (x86)\\Microsoft SQL Server\\100\\Tools\\Binn\\VSShell\\Common7\\IDE\\ssms.exe\" /dde"

[HKEY_CLASSES_ROOT\sqlwb.sql.9.0\Shell\Open\ddeexec]
@="Open(\"%1\")"

[HKEY_CLASSES_ROOT\sqlwb.sql.9.0\Shell\Open\ddeexec\application]
@="sqlwb.9.0"

[HKEY_CLASSES_ROOT\sqlwb.sql.9.0\Shell\Open\ddeexec\topic]
@="system"

答案 4 :(得分:1)

转到工具>>文件夹选项>>文件类型并应用以下设置。它最终对我有用!!! (谷歌搜索半天后)。

  1. 点击新建/编辑(在此窗口中应检查“下载后确认打开”,并且应取消选中“始终显示扩展名”)

  2. 在下一个窗口中,输入以下条目

       - Action: Open
       - Application used to perform action : Your ssms.exe path like "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"
       - Check "Use DDE" check box
       - DDE Message : Open("%1")
       - Applicajtion sqlwb.9.0
       - DDE Application Not Running: Keep it empty
       - Topic : system
    

    此致 Sandeep Gaadhe

答案 5 :(得分:1)

我正在使用SQL Server Management Studio 2012 Express,我已通过将“Program”指向“explorer.exe”来实现此功能

这是我的注册表设置方式:“C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ ssms.exe”/ dde ​​

HKEY_CLASSES_ROOT \ ssms.sql.11.0 \壳牌\打开\命令

答案 6 :(得分:0)

我2005年&安装了2008 SSMS,因此我违反了2005年的实例。如果我从Windows资源管理器打开.sql文件时打开2008 ssms,它现在将在现有的2008 ssms中打开(而不是尝试打开一个新实例!)

答案 7 :(得分:0)

在Windows资源管理器中,可以将选定的文件(单个或多个)拖放到SSMS窗口中。

答案 8 :(得分:0)

要检查的一件事是您是否具有多个版本的SSMS。如果碰巧使用的是旧版本,请双击文件将打开新的SSM版本。或任何sql文件的默认版本。

答案 9 :(得分:0)

给希望始终以管理员权限打开 SSMS 的用户的快速说明。

  • 在开始菜单中找到 SSMS。 Right-click>More>Open File Location
  • 在 Windows 资源管理器中看到 Microsoft SQL Server Management Studio * 的快捷方式后,Right-click>Open File Location
  • 然后Right-click on Ssms.exe>Troubleshoot compatibility
  • 然后click Troubleshoot program
  • The program requires additional permissions 处打勾,然后点击 Next
  • 现在它会强制您按 Test the program....
  • 然后按 NextYes, save these settings for this program

Arvo Bowen Jan 30 '20 at 15:27

这项工作完美。