mssql-python 驅動程式是 Microsoft 官方的 Python 驅動程式,適用於 SQL Server、Azure SQL Database、Azure SQL 受控執行個體 以及 SQL 資料庫。Microsoft Fabric。 驅動程式在 GitHub 上持續維護,並透過 PyPI 發布。 本文將介紹版本控制、平台相容性及支援時程。
版本支援
務必使用最新版本以獲得新功能、效能提升及安全修正。 新功能只會新增至目前版本。
目前版本
版本 1.15.0 是目前正式推出的 GA 版本。
版本歷程記錄
| 版本 | 發行日期 | 狀態 | 重點功能 |
|---|---|---|---|
| 1.15.0 | 2026 年 9 月 | 現況 |
setinputsizes() 的原生處理、Binary() 中對 memoryview 的支援、模組層級的 SQL Server 型別常數,以及 Windows ARM64 wheel 套件中的 ARM64 原生核心 |
| 1.14.0 | 2026 年 8 月 | 上一個 | 原生參數繫結管線,connect(timeout=) 設定驗證逾時,大量複製支援 timeout=0,大量複製中的 Arrow View 類型 |
| 1.13.0 | 2026 年 8 月 | 上一個 | Apache Arrow 批量複製、 token_provider 參數、身份感知連線池、必備 mssql-python-odbc 伴隨套件 |
| 1.12.0 | 2026 年 7 月 | 上一個 | 獨立的 mssql-python-odbc 隨附套件、大量複製連線逾時修正、大量複製 CLR UDT 修正 |
| 1.11.0 | 2026 年 7 月 | 上一個 | 情境管理器提交/回滾、Apple Silicon 修正、服務主體批量複製修正 |
| 1.10.0 | 2026 年 6 月 | 上一個 | 使用 ActiveDirectoryServicePrincipal 進行批量複製,Arrow VARCHAR 修正 |
| 1.9.0 | 2026 年 6 月 | 上一個 | 以 Row 物件進行批量複製,改進 NULL 參數型別 |
| 1.8.0 | 2026 年 5 月 | 上一個 | 使用 ActiveDirectoryMSI 進行批量複製,列字串鍵索引 |
| 1.7.1 | 2026 年 5 月 | 上一個 | RHEL 8 輪組、更廣泛的並行與 Unicode 修正 |
| 1.6.0 | 2026 年 4 月 | 上一個 | 以解析器為基礎的連線字串淨化,修正連線/中斷連線的並行處理問題 |
| 1.5.0 | 2026 年 4 月 | 上一個 | Arrow fetch,sql_variant,原生 UUID |
| 1.4.0 | 2026年2月 | 上一個 | 批量複製支援(BCP) |
| 1.3.0 | 2026年1月 | 上一個 | 設定類別,模組配置 |
| 1.2.0 | 2026年1月 | 上一個 | 結構發現方法 |
| 1.1.0 | 2025 年 12 月 | 上一個 | 客製化輸出轉換器 |
| 1.0.0 | 2025年11月 | 上一個 | 最初的通用授權釋出 |
Important
目前只有版本(1.15.0)獲得新功能與錯誤修正。 先前版本仍能正常運作,但不會有更新。
Python 版本相容性
mssql-python 驅動程式需要 Python 3.10 或更新版本。 如果你要開始一個新專案,建議在相容性矩陣中鎖定支援時間最長的 Python 版本。
| Python 版本 | 支援狀態 |
|---|---|
| Python 3.14 | Supported |
| Python 3.13 | Supported |
| Python 3.12 | Supported |
| Python 3.11 | Supported |
| Python 3.10 | 最低支援 |
| Python 3.9 及更早版本 | 不支援 |
Important
一定要使用支援的 Python 版本。 舊版 Python 不會收到安全更新。
SQL Server 版本相容性
mssql-python 驅動程式使用 TDS 協定,並支援所有積極支援的 SQL Server 版本。
| SQL Server 版本 | 支援狀態 |
|---|---|
| 所有支援的 Microsoft SQL Server 版本 | 完全支援 |
Azure SQL 服務
| Service | 支援狀態 |
|---|---|
| Azure SQL Database | 完全支援 |
| Azure SQL 受控執行個體 | 完全支援 |
| Azure Synapse Analytics(專用集區) | Supported |
Microsoft Fabric
| 終點 | 支援狀態 |
|---|---|
| Fabric 中的 SQL 資料庫 | 完全支援 |
| Fabric 資料倉儲 | Supported |
| SQL 分析端點(Lakehouse) | Supported |
| SQL 分析端點(鏡像資料庫) | Supported |
作業系統相容性
mssql-python 驅動程式使用 DDBC(直接資料庫連接),且不需安裝 Microsoft ODBC 驅動程式。 移除外部相依性簡化了部署,尤其是在容器和 CI/CD 管線中。
| 作業系統 | Architecture | 支援狀態 |
|---|---|---|
| Windows 11 | x64、ARM64 | Supported |
| Windows Server 2019、2022、2025 | x64 | Supported |
| Ubuntu 22.04、24.04、26.04 | x64、ARM64 | Supported |
| Debian 11, 12 | x64、ARM64 | Supported |
| Red Hat Enterprise Linux 8, 9 | x64、ARM64 | Supported |
| macOS 14、15、26 | 英特爾、蘋果矽晶片(ARM64) | Supported |
| 阿爾卑斯Linux | x64 | Supported |
功能相容性
以下表格列出 SQL Server 功能及其在目前版本(1.15.0)mssql-python 驅動程式中的支援狀態。 如果你需要的功能不支援,例如「Always Encrypted」或「MARS」,可以考慮改用 pyodbc 。 關於早期版本新增的功能資訊,請參閱 MSSQL-Python 的新內容。
SQL Server 功能
| Feature | MSSQL-Python 支援 |
|---|---|
| 加密連線(TLS) | Supported |
| 永遠加密 | 不支援 |
| Microsoft Entra 認證 | Supported |
| 多個使用中結果集 (MARS) | 不支援 |
| 批量副本(BCP) | Supported |
| Apache Arrow 擷取 | Supported |
| sql_variant 資料行 | Supported |
| 原生 UUID | Supported |
閒置連線復原能力(ConnectRetryCount) |
Supported |
| 唯讀路由 | Supported |
| 表格值參數(TVP) | 不支援 |
DB-API 2.0 合規性
| Feature | Support |
|---|---|
| 模組介面 | Compliant |
| 連接介面 | Compliant |
| 游標介面 | 大致上都很順從 |
| 型別物件 | Compliant |
| 例外狀況 | Compliant |
callproc() |
未實作 |
Note
這個 callproc() 方法沒有被實作。 使用搭配標準查詢方法的 EXECUTE 陳述式來呼叫預存程序。
依賴性要求
mssql-python 驅動程式的相依關係極少:
| 依賴性 | Purpose | 版本 |
|---|---|---|
| azure-identity | Microsoft Entra ID 認證 | 必要條件 (>= 1.12.0) |
| MSSQL-python-odbc | 附帶包,提供 ODBC 驅動二進位檔 | 自 mssql-python 1.13.0 起,必須為(== 18.6.2.1) |
pip install mssql-python 指令會自動安裝 mssql-python-odbc 伴隨套件。 該套件提供驅動程式啟動時載入的 ODBC 驅動二進位檔。 你不需要另外安裝 Microsoft 的 SQL Server ODBC 驅動程式。
伴隨套件在執行時是必需的。 驅動程式不會回到輪子內 mssql-python 的二進位。 在以下條件下明確安裝 mssql-python-odbc==18.6.2.1 :
- 您使用
--no-deps進行安裝。 - 你是從一個不會鏡像伴隨套件的私有索引安裝。
從 pyodbc 遷移
mssql-python 驅動程式簡化了部署(無需 ODBC 驅動),並提供內建連線池功能。 遷移時需要規劃的主要差異:
| 考慮事項 | Notes |
|---|---|
| 參數樣式 | PYODBC 使用 qmark 位置參數。 MSSQL-Python 預設使用 pyformat 命名參數,並支援 qmark 相容性。 |
| 行存取 | 兩者都支援屬性存取。 |
| 預存程序 | 使用 EXECUTE (不使用 callproc)。 |
| 連線池化 | mssql-python 驅動程式內建連線池功能。 |
詳細指引請參閱 從 pyodbc 遷移。
從 pymssql 遷移
pymssql 驅動程式已不再積極維護。 mssql-python 驅動程式提供了支援的替代方案,連接語法相似,但具備內建連線池與 Microsoft Entra 認證等現代功能。
| 考慮事項 | Notes |
|---|---|
| FreeTDS 依賴性 | 非必要。 mssql-python 驅動程式使用 DDBC。 |
| 連接參數 | 風格相似,但參數名稱不同。 |
| 行存取 | 兩者都支援字典式及屬性存取模式。 |
| 預存程序 | 使用 EXECUTE (不使用 callproc)。 |
詳細指引請參見「從 pymssql 遷移」。
重大變更政策
- 主要版本 (2.0、3.0):重大版本變更表示 API 變更會造成破壞。
- 次要版本 (1.4、1.5):加入新功能並維持向下相容性。
- 補丁版本 (1.4.1、1.4.2):僅包含錯誤修正。
團隊在發布說明中記錄重大變更並提供遷移指南。
如何保持最新
mssql-python 驅動程式經常釋出次要版本。 定期檢查更新,尤其是在正式部署前。
檢查已安裝的版本
請確認您目前安裝的驅動程式版本:
import mssql_python
print(mssql_python.__version__)
升級至最新版本
更新到最新版本以取得最新功能和安全修補。
pip install --upgrade mssql-python
訂閱更新
- 請關注 GitHub 倉庫。
- 請查看 PyPI 是否有新版本。
- 查看每個版本的更新日誌。
取得支援
GitHub 問題
回報錯誤並請求功能請至 GitHub:
Documentation
Community
- Stack Overflow:使用
mssql-python為問題加上標籤。 - GitHub 討論:用於一般提問與討論。