Microsoft SQLドライバとフレームワーク

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric SQL Database

アプリケーションはドライバーまたはデータプロバイダーを使ってMicrosoft SQL製品に接続します。 多くのアプリケーションは、ドライバの上にフレームワーク、オブジェクトリレーショナルマッパー(ORM)、またはその他のデータアクセスライブラリも使用しています。

  • ドライバーまたはプロバイダーはネットワーク通信、認証、コマンド、トランザクション、パラメータ、結果を処理します。
  • フレームワークやデータアクセスライブラリは、ドライバーやプロバイダーを使用し、オブジェクトマッピング、クエリ生成、変更追跡、移行、アプリケーションフレームワークとの統合などの機能を追加します。

まずは言語やプラットフォームに合ったドライバーやプロバイダーを選びましょう。 そして、アプリケーションがより高水準のプログラミングモデルを必要とする場合は、互換性のあるフレームワークやライブラリを選びましょう。 フレームワークは基盤となるドライバーの代わりにはなりません。

ドライバーのサポートとフレームワークのサポートは別物です。 Microsoftのドライバーサポートには、そのドライバーを使用するサードパーティフレームワークのサポートは含まれていません。

ドライバーかプロバイダーを選びましょう

以下の表は、この文書で扱われている主なドライバーおよび提供者を示しています。 サポートされているオペレーティングシステム、ランタイムバージョン、SQL製品、認証方法、機能に関するリンク付き製品ドキュメントを確認してください。

言語またはプラットフォーム ドライバーかプロバイダーか 所有権とサポート
.NET Microsoft.Data.SqlClient Microsoftは新しい.NET開発のプロバイダーです。
C および C++ Microsoft ODBC Driver for SQL Server Microsoft ODBCドライバー。
C および C++ Microsoft OLE DB Driver for SQL Server Microsoft OLE DBプロバイダー。
Go Go-MSSQLDB 標準のdatabase/sqlインターフェースを実装した公式Microsoft Goドライバーです。
Java SQL Server 用 Microsoft JDBC ドライバー Microsoft JDBCドライバー。
Node.js 面倒だ コミュニティ支援のドライバー。 Microsoftはプロジェクトに貢献していますが、Microsoftのサポートはありません。
PHP SQL Server 用 PHP 向け Microsoft ドライバー Microsoft SQLSRV および PDO_SQLSRV 拡張機能。 拡張機能はMicrosoft ODBCドライバーfor SQL Serverを使用しています。
Python mssql-python Microsoft Python ドライバー
Ruby タイニーTDS コミュニティ支援のドライバー。 RubyとTinyTDSにはMicrosoftのサポートはありません。

Apache Sparkの場合は、組み込みのSpark JDBCデータソースとMicrosoft JDBCドライバー for SQL Serverを使いましょう。 Microsoft SQL Sparkコネクタはアーカイブされており、現在は積極的に開発されていません。

フレームワークまたはデータアクセスライブラリを選択してください

以下の表は、プロバイダ、アダプター、またはデータベースディファレクトを通じてMicrosoft SQL製品をサポートするフレームワークおよびデータアクセスライブラリを一覧にしています。 リストは網羅的ではありません。

Language フレームワークまたはライブラリ Microsoft SQL統合 所有権とサポート
.NET Entity Framework Core SQL Server提供者 Microsoft.Data.SqlClient Microsoftが管理するEntity Framework Coreのプロバイダーです。
.NET Entity Framework 6 SQL Server プロバイダー Microsoft.Data.SqlClient 既存のEntity Framework 6アプリケーション向けのMicrosoftプロバイダー。
.NET Dapper ADO.NETDbConnection を拡張します。Microsoft.Data.SqlClient と併用します。 サードパーティ製のマイクロORMです。
Go GORM go-mssqldb サードパーティ製のORMです。 リンク先の記事では、その Microsoft SQL 方言の使い方が紹介されています。
Go SQLx go-mssqldb マッピングおよびクエリのヘルパーで database/sql を拡張するサードパーティ製ライブラリ。
Java ハイバネイトORM JDBC 経由の Microsoft SQL ダイアレクト; Microsoft JDBC Driver for SQL Server と共に使用します。 サードパーティ製のORMです。
Node.js とTypeScript プリズマORM 内蔵 sqlserver プロバイダー;Prisma 7は node-mssql ドライバーアダプターを使用できます。 サードパーティ製のORMです。
Node.js とTypeScript 続編 Microsoft SQL方言はTediousに基づいています。 サードパーティ製のORMです。
Node.js とTypeScript TypeORM Microsoftnode-mssqlとTediousに基づくSQLデータソースです。 サードパーティ製のORMです。
PHP ララベル・エロクエント Microsoft SQL接続はSQLSRVとPDO_SQLSRVを通じています。 サードパーティ製のウェブフレームワークとORM。
PHP DBALおよびORMの教義 Microsoftpdo_sqlsrvまたはsqlsrvドライバを通じたSQL接続。 サードパーティのデータベース抽象化層とORMです。
Python mssql-django mssql-django 2.0 における mssql-python または pyodbc。 Microsoft Djangoデータベースバックエンド。
Python SQLAlchemy 選択されたMicrosoft SQL方言によります。 サードパーティ製ツールキットとORMです。 リンク先の統合ガイダンスとそのバージョン要件を確認してください。
Ruby Active Record SQL Serverアダプター TinyTDSをベースにしたMicrosoft SQLアダプター(Ruby on Rails向け)。 コミュニティサポートのアダプターです。

フレームワークやライブラリを評価するとき:

  • そのプロバイダー、アダプター、または方言が、Microsoft SQL製品、認証方法、必要な機能をサポートしているかを確認してください。
  • フレームワークのメンテナンス状況、リリースポリシー、サポートチャネルを確認してください。
  • 接続問題がある場合は、可能であれば基礎となるドライバーで問題を再現してください。 直接ドライバーの再現は、問題がドライバーにかかっているのか、それとも上位の枠組みに属するのかを判断するのに役立ちます。