VS Code「mssql」で『There is no data provider…』エラーの原因と解決:SQL Tools Service 失敗対処と1.23.0ロールバック完全ガイド

Visual Studio Code に mssql 拡張機能を導入した直後から「There is no data provider registered that can provide view data」と表示され接続できない――そんな相談が急増しています。原因は SQL Tools Service の取得失敗や最新版の不具合、ランタイム不足など複合的。ここでは確実に復旧させるための手順と、企業環境・閉域網でも再発を防ぐ管理ノウハウまでを徹底解説します。

目次

VS Code 用「mssql」で “There is no data provider…” が出るとき何が起きているのか

このエラーは mssql 拡張がクエリ結果やオブジェクト情報を描画する際に内部で利用する「データプロバイダー」(= SQL Tools Service)が未登録・未起動・起動に失敗している状態を示します。典型的には次の兆候が重なります。

  • [Add Connection] ボタンを押しても反応しない、もしくは接続ダイアログが出ない。
  • 拡張機能の再インストールや自動更新を行っても改善しない。
  • 出力パネル(表示 > 出力)に SQL Tools Service の起動ログが出ない、あるいは即時停止している。

根本的には SQL Tools Service のバイナリが正しく展開されていない/起動できない、または最新版の不具合で拡張がサービス登録に失敗していることが多いです。

質問の背景と前提

  • VS Code 1.102.3 に mssql 拡張を導入直後からエラーが発生。
  • 再インストールや自動更新では解決せず、[Add Connection] が無反応。
  • Azure Data Studio は 2026年2月にサポート終了予定のため、VS Code への移行が急務。

よくある主因(要点)

  1. SQL Tools Service のダウンロード失敗/配置不良(ネットワーク遮断、プロキシ、権限、ディスク空き不足など)
  2. 最新版(v1.24.* など)の不具合によりサービス登録や UI 連携が壊れる
  3. .NET ランタイム不足やアンチウイルス/ファイアウォールによるブロック

最短で復旧させる推奨フロー

次の表は「実際に復旧した手順」をベースに、最小手順で確実に通すためのチェックポイントをまとめたものです。手順 6 のロールバックが決め手になったケースが多く報告されています。

手順内容ポイント
1SQL Tools Service を強制インストール
コマンドパレット Ctrl + Shift + P → 「Install SQL Tools Service」→ mssql を選択
数分後に接続を再試行。出力パネルにダウンロード&起動ログが出るか確認。
2サービスファイルの存在確認
Windows: %USERPROFILE%\.vscode\extensions\ms-mssql.mssql-*\sqltoolsservice 内に Microsoft.SqlTools.ServiceLayer.exe などがあるか
無ければ手順 4 へ。macOS/Linux も同様に ~/.vscode/extensions/ms-mssql.mssql-*/sqltoolsservice を確認。
3前提コンポーネント更新
VS Code を最新安定版へ更新/.NET 6.0+ ランタイム導入/ディスク空き 500MB 以上
.NET 不足や空き容量不足でサービス起動に失敗する事例が多い。
4拡張機能のクリーン再インストール
① mssql をアンインストール → ② VS Code を終了 → ③ 上記フォルダーを削除 → ④ 再インストール後、即「手順 1」を実行
破損したキャッシュを一掃。globalStorage の mssql 関連も合わせて消すと効果的。
5管理者権限・セキュリティソフトの影響排除
VS Code を「管理者として実行」。一時的に AV/FW を停止(企業 PC では除外登録を)
実行ファイルや一時展開フォルダを AV が隔離することがある。
6安定版へのロールバック(実際の解決法)
拡張の歯車 → Install Another Version → 1.23.0 を選択 → Disable Auto Updates
質問者はこの手順で解決。安定稼働まで 1.23.0 固定が無難。
7追加チェック
VC++ 再頒布パッケージ/SQL Server サービス状態/ポート 1433 の開放/完全な接続文字列
拡張側でなく接続先やネットワークが原因のケースも併発しやすい。

各手順の詳解と現場ノウハウ

手順 1:SQL Tools Service を強制インストール

コマンドパレットで Install SQL Tools Service を実行すると、OS とアーキテクチャ(x64/arm64)に合うバイナリが取得・展開されます。出力パネルに次のようなログが出るのが目印です。

[ms-mssql] Downloading SQL Tools Service...
[ms-mssql] Extracting...
[ms-mssql] Starting SQL Tools Service...

ログが一切出ない場合は、プロキシ設定(http.proxy)や 証明書検証(http.proxyStrictSSL) を見直し、開発者: ログレベルの設定 を trace にして再実行します。

手順 2:サービスファイルの存在確認(OS 別)

OSパス例確認するファイル
Windows%USERPROFILE%\.vscode\extensions\ms-mssql.mssql-*\sqltoolsservice\*Microsoft.SqlTools.ServiceLayer.exe、SqlToolsResourceProviderService.exe
macOS~/.vscode/extensions/ms-mssql.mssql-*/sqltoolsservice/*MicrosoftSqlToolsServiceLayer(実行属性が付いているか)
Linux~/.vscode/extensions/ms-mssql.mssql-*/sqltoolsservice/*MicrosoftSqlToolsServiceLayer(依存ライブラリ不足に注意)

フォルダ自体が存在しない、あるいはファイルサイズが明らかに小さい場合はダウンロードが途中で失敗しています。ディスク空きとセキュリティ製品の隔離を確認したうえで 手順 4 に進みます。

手順 3:前提コンポーネントの更新

  • VS Code 本体の更新:拡張の互換性問題を避ける最初の一手です。
  • .NET 6.0 以降のランタイム:環境によっては OS 側ランタイムに依存するビルドが使われます。「libhostfxr が見つからない」 などのメッセージは典型例。
  • ディスク空き 500MB 以上:ダウンロード+展開で一時的に大きめの空きが必要です。

手順 4:拡張機能のクリーン再インストール

  1. 拡張ビューから mssql をアンインストール。
  2. VS Code を完全終了(タスクトレイ/バックグラウンドも終了)。
  3. 拡張フォルダー(上記パス)および globalStorage/ms-mssql.mssql を削除。
  4. VS Code を起動し、マーケットプレースから mssql を再インストール。
  5. すぐに Install SQL Tools Service を実行して展開を完了させる。

手順 5:管理者権限とセキュリティ対策ソフト

企業 EDR/AV は自己展開・自己更新するツールを厳しめに監視します。次の場所を一時的に除外登録すると改善します。

  • %USERPROFILE%\.vscode\extensions\ms-mssql.mssql-*
  • ユーザーのテンポラリ(%TEMP% / ~/Library/Caches / /tmp)
  • VS Code のプロセス(Code.exe / code)

また、VS Code を「管理者として実行」してインストール〜初回起動まで通すと権限起因の失敗を回避できます。

手順 6:安定版 1.23.0 へのロールバック

最新版(例:v1.24.*)での不具合が疑われるときは、「Install Another Version」から 1.23.0 を導入→「Auto Updates を無効化」します。CLI を使う場合は以下が便利です。

# 既存の mssql をアンインストール
code --uninstall-extension ms-mssql.mssql

# 1.23.0 をピン留めインストール

code --install-extension [email protected]

# VS Code 全体の自動更新を抑制したい場合(必要なら)

# 設定(settings.json)に追記

{
"extensions.autoCheckUpdates": false,
"extensions.autoUpdate": false
} 

いったん安定運用に入ったら、修正版が出たタイミングで自動更新を再有効化するのが定石です。

手順 7:接続側の追加チェック

  • VC++ 再頒布パッケージ(Windows):ネイティブ依存のため最新を推奨。
  • SQL Server サービス状態:SQL Server (MSSQLSERVER) と SQL Server Browser。
  • ポート 1433/TCP:ファイアウォールでクライアント・サーバー両方の許可。
  • 接続文字列の完全性:サーバー名、ポート、インスタンス名、認証方式、暗号化オプション。

「すぐわかる」診断チェックリスト

チェック確認方法合格ライン
SQL Tools Service の起動表示 > 出力 → ドロップダウンから SQL Tools Service「Starting…」「Ready on port …」などのログが見える
ワークスペースの信頼ステータスバーの「ワークスペースの信頼」を確認「信頼済み」であること(未信頼だと拡張が抑止される)
Remote 環境WSL/SSH/Dev Container で実行中か判定Remote 側でも SQL Tools Service が展開されている
プロキシ設定http.proxy / http.proxyStrictSSLダウンロードに成功する設定に調整済み
ディスク空きインストールドライブの空き容量500MB 以上

「Add Connection が無反応」のときの代替手段

UI が固まるケースでも、コマンドパレットからの接続は通る場合があります。

  1. Ctrl + Shift + P → MS SQL: Connect を実行。
  2. 保存済みプロファイルがない場合は Create Connection Profile を選択。
  3. 最小構成でテスト接続:サーバー、認証、データベース名(任意)、暗号化(yes)など。

また、設定 JSON に直接プロファイルを記述する方法もあります(パスワードは空で OK、接続時にプロンプト)。

{
  "mssql.connections": [
    {
      "server": "tcp:db01.example.local,1433",
      "database": "SampleDB",
      "authenticationType": "SqlLogin",
      "user": "app_user",
      "password": ""
    }
  ]
}

接続文字列のベストプラクティス(例)

  • 既定インスタンス:tcp:server.example.com,1433
  • 名前付きインスタンス:tcp:server.example.com,51433(動的ポートを固定推奨)
  • Windows 認証:ドメイン参加クライアントなら既定で SSO/資格情報マネージャの整合性に注意
  • 暗号化:現行の mssql は既定で暗号化有効が推奨。サーバー証明書は信頼チェーンを正しく構成

Remote(WSL/SSH/Dev Container)での注意点

  • リモート側にも SQL Tools Service を展開:ステータスバー左下の緑アイコンで接続先を確認し、リモート側で Install SQL Tools Service を実行します。
  • glibc / libicu などの依存:Linux コンテナや古いディストリでは必要ライブラリが不足することがあります。
  • 権限:chmod +x MicrosoftSqlToolsServiceLayer が必要な場合あり。

アンチウイルス/EDR 製品との相性対策

自己展開・自己更新・ローカル TCP リスンという挙動は一部製品で誤検知の温床です。次を除外候補にします。

  • 拡張の展開ディレクトリ(ユーザープロファイル配下)
  • 一時ディレクトリ(展開先)
  • Microsoft.SqlTools.ServiceLayer 実行ファイル

監査ログに「検疫」「ブロック」「自己署名の実行ファイル」などの記録があればまずはここを疑います。

プロキシ・閉域網での運用 Tips

  • http.proxy と http.proxyStrictSSL を VS Code のユーザー設定に定義。
  • 拡張(.vsix)を配布して Extensions: Install from VSIX… でオフライン配布。
  • 初回展開に失敗する場合は、管理者が事前に sqltoolsservice フォルダを配布しておく(OS/arch 別)。

ログの取り方と見どころ

  1. 表示 > 出力 → ドロップダウンから SQL Tools Service / MS SQL を選択。
  2. ヘルプ > 開発者ツールの切り替え → コンソールで拡張起動エラーを確認。
  3. 開発者: ログレベルの設定 → trace にして再現、ログを採取。

よく見るログパターン:

  • ENOENT / EACCES:ファイルがない/読み書き権限がない
  • Handshake timed out:サービス層が起動せず、拡張が応答待ちでタイムアウト
  • hostfxr not found:.NET ランタイム関連の欠落

既知の事象と回避策

  • 最新版(v1.24.* など)で UI が無反応:1.23.0 へロールバックすることで回避。
  • リモート環境でのみ失敗:ローカルでは成功するなら、リモートへ Tools Service の再展開と依存ライブラリの導入。
  • ワークスペースが未信頼:信頼に切り替えて拡張を有効化。

不具合追跡は GitHub Issue #17961 で行われています。修正版が出たら自動更新を再度オンに戻すと良いでしょう。

バージョン固定と運用ガイド

安定運用のため、特定のワークステーション/CI 端末では拡張の自動更新を止め、1.23.0 に固定して検証を進める設計が現実的です。組織配布時のポイント:

  • インストール自動化:code --install-extension [email protected] をスクリプトに。
  • 設定の輸出入:settings.json と keybindings.json をプロファイル配布。
  • 例外登録テンプレート:EDR/AV の除外パスを管理台帳化。

FAQ(よくある質問)

Q. 「Add Connection」が無反応です。何から確認すべき? A. Install SQL Tools Service → 出力ログ確認 → ワークスペースの信頼 → 1.23.0 へロールバック、の順に。UI が固いときは MS SQL: Connect から接続プロファイルを作るのが早道です。 Q. .NET ランタイムは必須? A. ビルドによっては自己完結ですが、環境差で OS ランタイムに依存するケースがあります。hostfxr 関連エラーが出るなら .NET 6.0+ を導入してください。 Q. WSL/SSH/コンテナーで使えますか? A. 可能です。ただしリモート側にも SQL Tools Service を展開する必要があり、Linux 依存ライブラリ不足で失敗する場合があります。 Q. どのバージョンが安定? A. 本稿の検証範囲では 1.23.0 が安定。1.24.* 系で UI/サービス連携の不具合報告が散見されます。 Q. それでも繋がらないときの切り分けは? A. sqlcmd など外部ツールでサーバー到達可否を先に判定。ネットワークや認証で落ちている場合は mssql だけでは解消しません。

移行計画:Azure Data Studio 終了までにやること

  • 期日認識:Azure Data Studio は 2026年2月でサポート終了予定。以降は VS Code + mssql を主軸に。
  • 互換性評価:スニペット、接続プロファイル、拡張の代替(結果グリッドのエクスポート等)。
  • 運用標準化:拡張バージョン固定、プロキシ設定、EDR 例外、Remote 開発の要件定義。
  • 教育・展開:チーム向けにクイックスタート手順書を作成(本記事のフローをベースに)。

トラブルの「なぜ」を押さえる:内部アーキテクチャの要点

mssql は VS Code の拡張ホスト上で UI を提供し、バックエンドとして SQL Tools Service を子プロセスとして起動します。両者は IPC(標準入出力やソケット)で通信し、スキーマ探索・クエリ実行・結果描画を分担。今回のエラーは、UI 側から見て「結果データを提供してくれるプロバイダが登録されていない」=バックエンド起動や登録が失敗している状態を示します。したがって、「サービスを確実に展開・起動させる」ことが復旧の最短ルートになります。

やってはいけない落とし穴

  • 結果グリッドのエラーを「サーバー障害」と決めつける(多くはクライアント側問題)。
  • 拡張フォルダを削除せずに再インストールだけ繰り返す(破損キャッシュが残存)。
  • 企業 AV を止めずに検証し、ダウンロードだけ毎回失敗する。
  • Remote 環境でローカル側にだけ Tools Service を入れて安心する。

まとめ

“There is no data provider registered that can provide view data” は、SQL Tools Service の未展開・未起動・連携不具合に起因することがほとんどです。まずは Install SQL Tools Service → ファイル確認 → 前提更新 → クリーン再インストール → 権限・AV 確認という順で切り分け、最新版の不具合が疑わしいときは 1.23.0 にロールバックして安定運用に入るのが実践的です。修正版の提供が確認でき次第、自動更新を戻しつつ、Azure Data Studio 終了(2026年2月)までに VS Code への移行検証を完了させましょう。


付録:最終チェック用ミニ・ランブック

  1. VS Code を最新安定版に更新(可能なら再起動)。
  2. mssql を入れる → すぐ Install SQL Tools Service を実行。
  3. 出力ログでサービス起動を確認。フォルダに実行ファイルがあるかも見る。
  4. 接続テスト(MS SQL: Connect)。
  5. ダメなら AV/権限/プロキシを確認して再実行。
  6. 解消しなければ 1.23.0 をインストールし、自動更新を停止。
  7. 接続先やネットワークの健全性を sqlcmd で別途検証。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次