スポンサーリンク
SQL Server

SQL Server 2022 以降は SQL Native Client を使えない?代替ドライバと移行ポイントを徹底解説

SQL Server
この記事は約4分で読めます。

SQL Server を長く触っている人ほど「え、SQL Native Client(SQLNCLI)どこ行った?」と驚くはずです。 結論から言うと、SQL Server 2022 以降では SQL Native Client は完全に廃止され、インストールメディアにも含まれません。

この記事では、

  • なぜ SQL Native Client が消えたのか
  • 代わりに何を使えばいいのか
  • 既存アプリはどうすればいいのか
  • 別名(Alias)設定はどう変わったのか

といった実務で困るポイントをまとめます。

SQL Native Client は SQL Server 2022 で正式に廃止

SQL Native Client(SQLNCLI / SQLNCLI11)は、SQL Server 2012 以降「レガシ扱い」になっていました。 そしてついに SQL Server 2022 では完全に同梱されなくなりました

つまり、

  • SQL Server 2022 をインストールしても SQLNCLI は入らない
  • SSMS 19 以降も SQLNCLI ベースの機能は削除
  • 新規開発で SQLNCLI を使うことは非推奨

という状態です。

代替として Microsoft が推奨するドライバ

Microsoft は今後の接続ドライバとして、以下の 2 つを明確に推奨しています。

1. Microsoft ODBC Driver for SQL Server(最新は ODBC Driver 18)

  • Windows / Linux / macOS で利用可能
  • TLS 1.2 以降のセキュリティ要件に対応
  • 今後のメインストリーム

2. Microsoft OLE DB Driver for SQL Server(MSOLEDBSQL)

  • OLE DB を使うアプリ向けの後継ドライバ
  • SQLNCLI の後継として Microsoft が正式にメンテナンス

新規開発は ODBC Driver 18 一択と言っていい状況です。

既存アプリで SQL Native Client が必要な場合

レガシアプリが SQLNCLI を前提にしているケースはまだ多いです。 その場合は、SQL Server 2022 には含まれないため、別途インストールする必要があります

入手元は以下のような旧バージョンの Feature Pack(例:SQL Server 2012 Feature Pack)。 ただし、これはあくまで「延命措置」であり、Microsoft も非推奨です。

長期的には ODBC / OLE DB への移行が必須。

SQL Server 2022 で alias(別名)設定が変わった

SQL Server 2019 までは「SQL Server 構成マネージャー」から SQL Native Client ベースの alias を作成できました。

しかし 2022 では その UI が削除されています。

代わりに使うのは:

✔ cliconfg.exe(SQL クライアント構成)

Windows に標準で入っているため、 SQLNCLI が無くても alias 設定は可能です。

接続文字列の移行ポイント

SQLNCLI を使っている接続文字列は、以下のように書き換えます。

SQLNCLI(旧)

Provider=SQLNCLI11;Server=server01;Database=Sample;Trusted_Connection=yes;

OLE DB(新)

Provider=MSOLEDBSQL;Server=server01;Database=Sample;Trusted_Connection=yes;

ODBC(推奨)

Driver={ODBC Driver 18 for SQL Server};Server=server01;Database=Sample;Trusted_Connection=yes;Encrypt=yes;TrustServerCertificate=yes;

特に ODBC Driver 18 は Encrypt=yes がデフォルト必須なので注意。

実務でよくあるトラブルと対処

● SQL Server 2022 にしたらアプリが接続できなくなった

→ アプリが SQLNCLI を要求している → ODBC Driver 18 または MSOLEDBSQL をインストールして接続文字列を更新

● 別名設定が見つからない

→ SQL Server 構成マネージャーから削除 → cliconfg.exe を使用

● Visual Studio では動くのに本番で動かない

→ VS が勝手に ODBC/OLEDB を入れている → 本番環境にも同じドライバを明示的に導入

まとめ:SQL Native Client は完全に過去のものへ

SQL Server 2022 以降では:

項目状況
SQL Native Client廃止(同梱なし)
新規開発ODBC Driver 18 / MSOLEDBSQL を使用
レガシアプリSQLNCLI を別途入手して延命可能(非推奨)
別名設定cliconfg.exe を使用

SQLNCLI は長く使われてきましたが、 セキュリティ要件やクロスプラットフォーム対応を考えると、 ODBC Driver 18 への移行は避けられません。

コメント

タイトルとURLをコピーしました