適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft 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製品、認証方法、必要な機能をサポートしているかを確認してください。
- フレームワークのメンテナンス状況、リリースポリシー、サポートチャネルを確認してください。
- 接続問題がある場合は、可能であれば基礎となるドライバーで問題を再現してください。 直接ドライバーの再現は、問題がドライバーにかかっているのか、それとも上位の枠組みに属するのかを判断するのに役立ちます。