適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
Microsoft Fabric 中的 SQL 資料庫
應用程式使用驅動程式或資料提供者來連接 Microsoft SQL 產品。 許多應用程式也會在驅動程式之上使用框架、物件關聯映射器(ORM)或其他資料存取函式庫。
- 驅動程式或提供者負責網路通訊、認證、指令、交易、參數與結果。
- 框架或資料存取函式庫使用驅動程式或提供者,並加入物件映射、查詢產生、變更追蹤、遷移或與應用框架整合等功能。
先選擇適合你語言和平台的司機或服務提供者。 接著,如果你的應用程式需要更高階的程式設計模型,就選擇相容的框架或函式庫。 框架並不能取代底層驅動程式。
驅動程式的支援與框架的支援是分開的。 Microsoft 對驅動程式的支援不包含使用該驅動程式的第三方框架。
選擇駕駛人或供應商
下表列出本文件涵蓋的主要駕駛人與提供者。 請檢視連結的產品文件,涵蓋支援的作業系統、執行時版本、SQL 產品、認證方法及功能。
| 語言或平台 | 駕駛人或提供者 | 擁有權和支援 |
|---|---|---|
| .NET | Microsoft.Data.SqlClient | Microsoft 提供新 .NET 開發的供應商。 |
| C 和 C++ | 適用於 SQL Server 的 Microsoft ODBC 驅動程式 | Microsoft ODBC 驅動程式。 |
| C 和 C++ | 適用於 SQL Server 的 Microsoft OLE 資料庫驅動程式 | Microsoft OLE DB 提供者。 |
| Go | Go-MSSQLDB | 官方 Microsoft Go 驅動程式,實作了標準database/sql介面。 |
| JAVA | Microsoft JDBC SQL Server 驅動程式 | Microsoft JDBC 驅動程式。 |
| Node.js | 無聊 | 社群支持的驅動程式。 Microsoft 有參與這個專案,但沒有 Microsoft 的支援。 |
| PHP | 適用於 SQL Server 的 Microsoft PHP 驅動程式 | Microsoft SQLSRV 和 PDO_SQLSRV 擴充功能。 這些擴充功能使用 Microsoft ODBC Driver for SQL Server。 |
| Python | MSSQL-Python | Microsoft Python 驅動程式。 |
| Ruby | TinyTDS | 社群支持的驅動程式。 Ruby 和 TinyTDS 沒有 Microsoft 支援。 |
對於 Apache Spark,請使用內建的 Spark JDBC 資料來源,搭配 Microsoft JDBC Driver for SQL Server。 Microsoft SQL Spark 連接器已存檔,目前尚未積極開發中。
選擇框架或資料存取函式庫
下表列出透過提供者、介面卡或資料庫方言支援 Microsoft SQL 產品的框架與資料存取函式庫。 這份清單並不詳盡。
| 語言 | 框架或函式庫 | Microsoft SQL 整合 | 擁有權和支援 |
|---|---|---|---|
| .NET | Entity Framework Core SQL Server提供者 | Microsoft.Data.SqlClient |
由 Microsoft 維護的 Entity Framework Core 提供者。 |
| .NET | Entity Framework 6 SQL Server 提供者 | Microsoft.Data.SqlClient |
Microsoft 為現有 Entity Framework 6 應用程式提供服務。 |
| .NET | Dapper | 延伸 ADO.NET DbConnection;搭配 Microsoft.Data.SqlClient 使用。 |
第三方微型ORM。 |
| Go | GORM | go-mssqldb |
第三方 ORM。 連結文章展示了如何使用其 Microsoft SQL 方言。 |
| Go | SQLX | go-mssqldb |
可透過對應與查詢輔助程式來擴充 database/sql 的第三方函式庫。 |
| JAVA | Hibernate ORM | Microsoft SQL 方言於 JDBC 上;可搭配 Microsoft JDBC 驅動程式 for SQL Server 使用。 | 第三方 ORM。 |
| Node.js 與 TypeScript | Prisma ORM | 內建 sqlserver 提供者;Prisma 7 可使用其 node-mssql 驅動程式轉接器。 |
第三方 ORM。 |
| Node.js 與 TypeScript | Sequelize | 以 Tedious 為基礎的 Microsoft SQL 方言。 | 第三方 ORM。 |
| Node.js 與 TypeScript | TypeORM | 以 node-mssql 和 Tedious 為基礎的 Microsoft SQL 資料來源。 |
第三方 ORM。 |
| PHP | Laravel Eloquent | 使用 SQLSRV 和 PDO_SQLSRV 的 Microsoft SQL 連線。 | 第三方網頁框架與 ORM。 |
| PHP | DBAL 與 ORM 原則 | Microsoft SQL 透過 pdo_sqlsrv 或 sqlsrv 驅動程式連線。 |
第三方資料庫抽象層與 ORM。 |
| Python | MSSQL-django |
mssql-python 或 pyodbc 於 mssql-django 2.0 中。 |
Microsoft Django 資料庫後端。 |
| Python | SQLAlchemy | 這取決於所選的 Microsoft SQL 方言。 | 第三方工具包和ORM。 請檢視連結的整合指引及其版本要求。 |
| Ruby | Active Record SQL Server 介面卡 | 以 TinyTDS 為基礎的適用於 Ruby on Rails 的 Microsoft SQL 配接器。 | 由社群支援的轉接器。 |
當你評估一個框架或函式庫時:
- 確認其提供者、介面卡或方言是否支援 Microsoft SQL 產品、認證方法及您的應用程式所需的功能。
- 檢查框架的維護狀態、發布政策和支援管道。
- 對於連線問題,請盡可能使用底層驅動程式重現該問題。 直接驅動程式的重現有助於判斷問題屬於驅動程式還是高階框架。