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 讨论:用于一般提问和讨论。