web-dev-qa-db-ja.com

SQLファイルがSSMS 17.9.1の新しいインスタンスを開くのを防ぐ方法は?

概要

これは新しい問題ではなく、インターネット上に浮かんでいる解決策がいくつかあります。

問題

.sqlファイルをダブルクリックすると、SSMSの新しいインスタンスが開きます。新しいSQL Server Management Studio(SSMS 17.9.1)がインストールされるまで、この問題は発生しませんでした。

私が試したもの

  • このページ は、レジストリの変更とファイルの関連付け、およびSSMSの再インストールを提案するいくつかのソリューションを示しています。どれもうまくいきませんでした。
  • これ は前のリンクとほとんど同じです。 (SOはこれらのフォーラムよりもはるかに優れています。)
  • レジストリの変更が表示されます こちら 優れたスクリーンショット。 "%1"を追加しましたが、違いはありませんでした。
  • 提案 SOで言及 も機能しませんでした。
  • [〜#〜] dba [〜#〜] では、ほとんどの場合、アクセス許可の引き上げについて話していますが、私の状況ではそうではありません。

回避策

はい、次の回避策について知っています。

  • Ctrl + O
  • .sqlファイルをSSMSにドラッグ

私は回避策を探していますではありません

私の環境

新しいSSMS 17.9.1(ビルド:14.0.17289.0)でも、SQL Server 2016(13.0.5233.0)をまだ指しています。以前は、同じSQL Server(13.0.5233.0)で2016年6月のSSMS(ビルド:13.0.15000.23)を使用していました。

許可のため、私は管理者としてアプリケーションを実行していません。


SQL Serverのバージョンがリストされています ここ

SQL Server Management Studioのバージョンがリストされています ここ

8
Farhan

17.9の代わりにSSMS 18をインストールした後、この問題が発生しました。次に、上記のリストの解決策を試しましたが、うまくいきませんでした。 SSMS 18をアンインストールして17.9を再度インストールしても機能しませんでした。 SSMS 18でこの問題を解決することができましたが、SSMS 17の不正な動作も修正されることを願っています。最初にSSMSをアンインストールし、次にレジストリを検索して、SSMSまたはsql_auto_fileに関する情報を含むすべての意味のあるノードを見つけて削除しました。次のノードを削除しました(削除する前に、それぞれのノードをバックアップすることを忘れないでください!):

  • HKEY_CLASSES_ROOT.sql
  • HKEY_CLASSES_ROOT\Applications\Ssms.exe
  • HKEY_CLASSES_ROOT\sql_auto_file
  • HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ApplicationAssociationToastsのssmsのすべてのレコードを削除しました
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.sql
  • HKEY_USERS.DEFAULT\Software\Microsoft\SQL Server Management Studio

次に、PCを再起動し、SSMS 18をインストールしてから、再起動しました。その後、SSMSは既存のSSMSインスタンスでSQLファイルを開き、エクスプローラーには正しいファイルアイコンが割り当てられます(小さいデータベースアイコンのドキュメント)。

6
Alexander G

Alexander Gの投稿が私を私の答えに導きました。

同じ問題があり、エクスプローラーから.sqlファイルをダブルクリックして開くと、既存のインスタンスではなく、SSMSの新しいインスタンスが開きます。これは、新しいラップトップにSQL/SSMSをまったく新しくインストールしたため、以前のバージョンとの競合が原因ではありませんでした。

ラップトップの私の標準ユーザーアカウントは管理者ではないため、SSMSは「管理者として実行」を使用してインストールされました。この方法で行うと、私のユーザーではなく、管理者のアカウントレジストリに正しいユーザー固有のレジストリ設定が読み込まれるようです。

問題の原因であると思われる間違った特定のエントリは次のとおりです。

  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.sql

管理者ユーザー用に作成した値に基づいて、ユーザーのHKEY_USERSハイブにこれらのエントリを手動で作成しました。これで、.sqlファイルがSSMSの既存のインスタンスで開きます。

(これはssms.sql15.0ではなく、sql_auto_fileへの関連付けに関係していると思います)

3
Steve

ようやくこの問題の解決策を見つけました。以下をHKCUレジストリに追加してください。うまくいけば、うまくいくはずです。

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.sql\OpenWithList] "a" = "ssms.exe" "MRUList" = "a"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.sql\OpenWithProgids] "ssms.sql.15.0" = hex(0):

2
Heidi

Management Studio(v 18.3.1)を閉じ、ファイルエクスプローラーで.sqlファイルをダブルクリックしてSSMSを開くことで、これを修正しました。それが開いた後、別の.sqlをダブルクリックして同じSSMSインスタンスで開き、別の.sqlをもう一度ダブルクリックして、同じSSMSインスタンスで開きました。

それが「修正」されたかどうかを確認するために、私はSSMSを閉じてから、SSMSを開きました。次に、2つの異なる.sqlファイルをダブルクリックし、それらは両方とも同じSSMSインスタンスで開きました。

0
Steve White