mssql-python 的支持生命周期

mssql-python 驱动是 Microsoft 官方的 Python 驱动,适用于 SQL Server、Azure SQL 数据库、Azure SQL 托管实例 以及Microsoft Fabric。 该驱动在 GitHub 上被积极维护,并通过 PyPI 发布。 本文将介绍版本控制、平台兼容性及支持时间表。

版本支持

始终使用最新版本以获得新功能、性能提升和安全修复。 新功能仅添加到当前版本。

当前版本

1.11.0 版本是当前的正式发布(GA)版本。

版本历史记录

版本 发行日期 地位 主要功能
1.11.0 2026 年 7 月 当前 上下文管理器提交/回滚、Apple Silicon 修复、服务主体批量复制问题修复
1.10.0 2026 年 6 月 上一个 使用 ActiveDirectoryServicePrincipal 的批量复制,Arrow VARCHAR 修复
1.9.0 2026 年 6 月 上一个 支持使用行对象进行批量复制,改进了 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 提取、sql_variant、原生 UUID
1.4.0 2025 年 2 月 上一个 批量复制支持(BCP)
1.3.0 2025 年 1 月 上一个 设置类,模块配置
1.2.0 2024 年 11 月 上一个 模式发现方法
1.1.0 2024 年 9 月 上一个 定制输出转换器
1.0.0 2024 年 7 月 上一个 最初的通用版发布

Important

只有当前版本(1.11.0)获得了新功能和修复错误。 之前的版本仍然可用,但不会收到更新。 升级到最新版本以获得最佳体验。

Python版本兼容性

mssql-python 驱动需要 Python 3.10 或更高版本。 如果你要开始一个新项目,可以在兼容性矩阵中选择支持最新的 Python 版本,以获得最长的支持窗口。 如果你只能用较旧的 Python 版本(3.9 或更早),那就用 pyodbc。

Python 版本 支持状态
Python 3.14 支持
Python 3.13 支持
Python 3.12 支持
Python 3.11 支持
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 数据库 完全支持
Azure SQL 托管实例 完全支持
Azure Synapse Analytics(专用池) 支持

Microsoft Fabric

终结点 支持状态
Fabric 中的 SQL 数据库 完全支持
Fabric Data Warehouse 支持
SQL 分析端点(Lakehouse) 支持
SQL 分析终结点(镜像数据库) 支持

操作系统兼容性

mssql-python 驱动使用 DDBC(直接数据库连接),不需要安装 Microsoft ODBC 驱动。 去除外部依赖简化了部署,尤其是在容器和CI/CD管道中。

操作系统 Architecture 支持状态
Windows 11 x64、ARM64 支持
Windows Server 2019、2022、2025 x64 支持
Ubuntu 22.04, 24.04, 26.04 x64、ARM64 支持
Debian 11、 12 x64、ARM64 支持
Red Hat Enterprise Linux 8、 9 x64、ARM64 支持
macOS 14、15、26 Intel、Apple Silicon (ARM64) 支持
Alpine Linux x64 支持

功能兼容性

下表列出了当前版本(1.11.0)mssql-python驱动中的SQL Server特性及其支持状态。 如果你需要的功能不被支持(比如Always Encrypted或MARS),可以考虑用 pyodbc 。 有关早期版本新增的功能,请参见 MSSQL-Python 的新内容

SQL Server功能

Feature MSSQL-Python 支持
加密连接 (TLS) 支持
始终加密 (Always Encrypted) 不支持
Microsoft Entra 身份验证 支持
多个活动的结果集 (MARS) 不支持
批量复制(BCP) 支持
Apache Arrow 获取 支持
sql_variant 列 支持
原生UUID 支持
连接弹性 支持
只读路由 支持

DB-API 2.0 合规性

Feature Support
模块接口 合规的
连接接口 合规的
光标接口 基本合规
类型对象 合规的
异常 合规的
callproc() 未实现

注释

callproc() 方法尚未被实现。 通过使用 EXECUTE 标准查询方法的语句调用存储过程。

依赖项要求

mssql-python 驱动的依赖关系极少:

依赖 Purpose 版本
azure-identity Microsoft Entra ID 身份验证 必需(>= 1.12.0)

mssql-python 驱动不需要安装 Microsoft ODBC 驱动。

从pyodbc迁移

mssql-python 驱动简化了部署(无需 ODBC 驱动),并内置连接池。 迁移时需要规划的主要区别:

注意事项 注释
参数样式 PYODBC 使用 qmark 位置参数。 MSSQL-Python 默认使用 pyformat 命名参数,同时也支持 qmark 兼容性。
行访问 两者都支持属性访问。
存储过程 使用 EXECUTE (不使用 callproc)。
连接池 mssql-python驱动内置的池化功能。

请参阅从 pyodbc 迁移,获取详细指导。

从 pymssql 迁移

pymssql驱动已不再被积极维护。 mssql-python驱动提供了一种支持的替代方案,连接语法相似,但具备内置连接池和Microsoft Entra认证等现代化功能。

注意事项 注释
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 讨论:用于一般提问和讨论。