新闻详情

新闻详情

首页 / 资讯中心 / 详情

在 Windows 上使用 Python pyodbc 连接 Azure SQL Database 与 SQL Server:官方示例实战指南

发布时间:2026/9/25 7:07:18来源:尧图网络
在 Windows 上使用 Python pyodbc 连接 Azure SQL Database 与 SQL Server:官方示例实战指南
示例工程数据库教程后端【免费下载链接】sql-server-samplesAzure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge项目地址https://gitcode.com/gh_mirrors/sq/sql-server-samples点击查看免费下载本指南以 Microsoft sql-server-samples 仓库中的官方 Windows 示例samples/tutorials/python/pyodbc/windows/README.md为主体讲解如何在 Windows 客户端上使用pyodbc连接器连接 Azure SQL Database 或 SQL Server 2016完成基础的 SELECT 与 INSERT 操作。读完本文后你将掌握 pyodbc 连接字符串的完整写法、示例代码的执行流程以及驱动安装、数据准备等落地环节的关键细节可以直接把示例跑通并迁移到自己的业务代码中。关于本示例该示例来自仓库中的 Python 示例集官方定位如下适用对象SQL Server 2016或更高版本、Azure SQL Database、Azure SQL Data Warehouse现并入 Azure Synapse、Parallel Data Warehouse工作负载CRUD增删改查编程语言Python作者Meet Bhagdev示例本身非常精简——只包含一个文件 sample_python_windows.py但它完整演示了 pyodbc 连接数据库的「三板斧」构造连接字符串、建立连接与游标、执行 SQL 并逐行读取结果。这是所有 Python SQL Server 应用的最小可运行骨架。开始之前软硬件前置条件在 Windows 客户端上运行本示例需要依次满足以下前置条件。软件前置条件SQL Server 2016或更高版本或一个 Azure SQL Database。这是连接的目标端示例代码中的连接信息需要指向它。Python。原文档指向 Python 2.7.6 版本。需要特别说明的是示例源码使用的是Python 2 语法例如print row[0]是语句而非函数调用如果你使用 Python 3 运行需要将源码中的print语句改写为print(row[0])形式。实际生产中建议使用较新的 Python 3 版本并同步调整语法。Microsoft ODBC Driver for SQL ServerWindows 版11 或 13。这是 pyodbc 与 SQL Server 之间通信的底层驱动需从微软官方渠道下载并安装。示例的连接字符串中指定的驱动名称为ODBC Driver 13 for SQL Server安装时必须保证系统注册的驱动名与连接字符串中的名称完全一致连接字符串中的驱动名需要去掉空格。pyodbc 库。在终端中执行pip install pyodbcpyodbc 是 Python 生态中最常用的 ODBC 数据库连接库它把 Python DB-API 接口映射到 ODBC 驱动之上因此只要系统里装了对应的 ODBC 驱动同一套代码就可以连接 SQL Server、Azure SQL Database 等多种数据源。Azure 前置条件准备 AdventureWorks 数据库示例中的 SELECT 与 INSERT 语句都依赖AdventureWorks示例数据库具体是SalesLT.Product和SalesLT.Product表所在的 SalesLT schema。仓库本身即为 AdventureWorks 提供了完整的安装资源OLTP 安装脚本与全部 CSV 数据位于 samples/databases/adventure-works/oltp-install-script/主脚本为 instawdb.sql数据仓库版脚本位于>import pyodbc server tcp:myserver.database.windows.net database mydb username myusername password mypassword #Connection String cnxn pyodbc.connect(DRIVER{ODBC Driver 13 for SQL Server};SERVERserver;DATABASEdatabase;UIDusername;PWD password)各参数含义如下参数示例值说明servertcp:myserver.database.windows.net目标实例地址。Azure SQL Database 的地址形如server.database.windows.nettcp:前缀用于明确走 TCP 协议连接本地 SQL Server 时则为localhost、localhost\SQLEXPRESS或主机名/实例名databasemydb目标数据库名示例中为 AdventureWorksusername/UIDmyusername登录名Azure SQL Database 通常使用userserver的格式password/PWDmypassword登录密码DRIVER{ODBC Driver 13 for SQL Server}必须与系统已安装 ODBC 驱动注册名一致花括号用于包裹含空格的驱动名pyodbc.connect()成功后会返回一个连接对象cnxn再通过cnxn.cursor()取得游标cursor后续所有 SQL 都由该游标执行。这段代码清晰地展示了 pyodbc 连接字符串的关键点所有键值对用分号连接键名不区分大小写驱动名必须带花括号。运行示例运行步骤如下用文本编辑器打开 sample_python_windows.py将server、database、username、password四个变量替换为你自己的真实值在终端中进入示例所在目录并执行python sample_python_windows.py观察输出程序会先打印SELECT version;返回的 SQL Server 版本信息再打印 INSERT 语句返回的新插入记录的 ProductID。示例代码逐段解析示例共包含三个逻辑步骤下面结合源码逐段解读。第一步SELECT 查询版本信息cursor.execute(SELECT version;) row cursor.fetchone() while row: print row[0] row cursor.fetchone()cursor.execute()执行查询但不立即获取结果cursor.fetchone()每次取回结果集的一行元组while row:循环遍历所有返回行row[0]是元组的第一个字段——这里正是version返回的版本字符串。这个模式execute→fetchone→while循环是 pyodbc 读取结果集的最基础写法几乎所有 SELECT 场景都可以套用。第二步INSERT 并回读新主键cursor.execute(INSERT SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) OUTPUT INSERTED.ProductID VALUES (SQL Server Express New 20, SQLEXPRESS New 20, 0, 0, CURRENT_TIMESTAMP )) row cursor.fetchone() while row: print Inserted Product key is str(row[0]) row cursor.fetchone()INSERT 语句向SalesLT.Product表插入一条新产品记录字段覆盖Name、ProductNumber、StandardCost、ListPrice和SellStartDate用CURRENT_TIMESTAMP取当前时间关键点在于OUTPUT INSERTED.ProductID子句它让 INSERT 语句同时把新生成的主键值作为结果集返回从而可以直接用fetchone()取到插入行的 ProductID程序随后打印Inserted Product key is id验证插入成功。这种「插入后立即取回主键」的做法避免了再次查询是写入类业务中的常用技巧。注意示例只做了 INSERT 而没有调用cnxn.commit()——如果你希望插入的数据真正落库需要在实践中显式提交事务或在连接字符串中配置自动提交。第三步遍历结果两段 SQL 都使用了相同的while row:读取循环。需要留意的是示例源码运行于 Python 2 环境print均为语句形式若迁移到 Python 3请改为print(row[0])、print(Inserted Product key is str(row[0]))。与 Linux 版本的对照仓库同时提供了 Ubuntu Linux 版本samples/tutorials/python/pyodbc/linux/README.md其示例代码 sample_python_linux.py 与 Windows 版几乎一致差异主要体现在安装方式不同Linux 版通过apt-get安装python-dev、python-pipODBC 驱动通过官方安装脚本安装pyodbc 用sudo -H pip install pyodbc连接代码相同两个平台共用同一套 pyodbc API 与连接字符串结构这正是 pyodbc 跨平台能力的最好佐证。如果你在 macOS 或 Linux 上开发可以参照 Python 示例集 中按操作系统分目录组织的各版本仓库还提供了使用pymssql驱动连接 SQL Server 的同类示例如 samples/tutorials/python/pymssql/linux/README.md可作为连接器选型时的对照参考。注意事项与限制Python 版本示例源码是 Python 2 语法运行时请按实际解释器版本调整print等语法ODBC 驱动版本连接字符串中的驱动名ODBC Driver 13 for SQL Server必须与系统安装的驱动注册名一致否则会抛出 IM002: Driver not found 类错误安装新版驱动后需同步修改此名称SQL 版本依赖SalesLT.Product表存在于 AdventureWorks 的 SalesLT schema插入语句依赖该表结构与已有数据请务必先用仓库脚本准备数据库事务提交示例未显式commit()在实际写入业务中应根据需要提交或回滚事务凭据安全示例把密码硬编码在源码中仅供学习演示生产环境应使用环境变量、密钥管理服务或受支持的认证方式替代。延伸阅读本示例完整源码sample_python_windows.py同连接器的 Ubuntu Linux 版本linux/README.mdPython 系列教程总览samples/tutorials/python/README.mdpymssql 驱动的对照示例samples/tutorials/python/pymssql/linux/README.mdAdventureWorks 示例数据库安装资源samples/databases/adventure-works/README.md免责声明本指南及所引用的脚本版权归 Microsoft Corporation 所有仅作为示例提供不属于任何 Azure 服务的一部分不受任何 SLA 或 Azure 相关协议保障脚本按「原样」提供不附带任何明示或暗示的担保。使用前请务必通读脚本内容。赞分享示例工程数据库教程后端【免费下载链接】sql-server-samplesAzure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge项目地址https://gitcode.com/gh_mirrors/sq/sql-server-samples点击查看免费下载相关推荐使用 pymssql 在 Ubuntu Linux 上连接 Azure SQL Database 与 SQL Server官方 Python 示例全解析使用 pymssql 在 Ubuntu Linux 上连接 Azure SQL Database 与 SQL Server官方 Python 示例全解析 本篇示例工程数据库教程后端从零到一使用command-line-args构建专业级CLI工具的完整教程从零到一使用command line args构建专业级CLI工具的完整教程 command line args是一个成熟、功能完善的命令行选项解析库能够帮示例工程数据库教程后端在 Ubuntu Linux 上用 pyodbc 连接 Azure SQL Databasesql-server-samples 官方 Python 教程实战在 Ubuntu Linux 上用 pyodbc 连接 Azure SQL Databasesql server samples 官方 Python 教程实战示例工程数据库教程后端上一篇如何在 Unity 里接上 RealSense 深度感知3 步上手指南下一篇raylib-games资源管理指南纹理、音频、字体加载与优化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Atlas 300V实录:YOLO目标检测迁移国产加速卡全流程 2026/9/25 7:38:17

Atlas 300V实录:YOLO目标检测迁移国产加速卡全流程

搞了大半年NVIDIA系,突然接到一个"硬性要求":目标检测服务必须迁移到国产加速卡上,具体型号是Atlas 300V 24G。第一反应是谁把这玩意儿塞进我项目里的,第二反应是赶紧查规格。结果越查越发现,这卡和我想象中…

阅读更多 →
昇腾Atlas 300V 24G推理卡实战:从模型转换到YOLO部署全解析 2026/9/25 7:38:17

昇腾Atlas 300V 24G推理卡实战:从模型转换到YOLO部署全解析

如果你这两年一直在关注AI推理相关的硬件和部署方案,那“atlas”这个词一定不陌生。从数据中心的推理卡到边缘侧的智能小站,华为昇腾这个系列的曝光率越来越高。尤其是最近热搜里频繁出现的 atlas 300v 24g,很多人都在问:这块卡到…

阅读更多 →
WordPress写真下载站整站源码实测:模板选型、部署避坑与运营全攻略 2026/9/25 7:38:16

WordPress写真下载站整站源码实测:模板选型、部署避坑与运营全攻略

想靠WordPress做资源下载站或者写真图库类站点的人,十有八九会卡在同一关上:主题不好选,功能凑不齐,折腾半个月还在原地打转。我之前拿到一套号称“全新COS美女写真网站整站源码两套下载站模板”的WP源码包,实测下来发…

阅读更多 →
AgnesCode实测:本地AI编程工作台如何落地生产环境 2026/9/25 7:38:10

AgnesCode实测:本地AI编程工作台如何落地生产环境

1. 项目概述:这不是又一个“AI写代码”演示,而是真实开发流里的压力测试AgnesCode 这个名字最近在开发者圈子里冒得很快,尤其在中小团队和独立开发者中——不是因为它是某个大厂新推的闭源产品,而是因为它把“免费模型工作台”这个…

阅读更多 →
全连接网络实现喷码字符识别:预处理、训练与避坑全解析 2026/9/25 7:38:10

全连接网络实现喷码字符识别:预处理、训练与避坑全解析

简介:面向机器学习与深度学习入门者,提供一套基于全连接神经网络的喷码字符分类识别完整方案。资源以牛奶盒生产日期这类喷码字符为典型对象,利用神经网络实现全自动训练与分类识别,适用于工业字符识别、图像分类等场景。压缩包共…

阅读更多 →
Atlas 300V 24G 上的 YOLO 模型部署实战:从 ONNX 到 OM 全流程解析 2026/9/25 7:38:09

Atlas 300V 24G 上的 YOLO 模型部署实战:从 ONNX 到 OM 全流程解析

前阵子搞模型推理落地,一直在折腾 Atlas 300V 24G 这张卡。网上关于它的资料不算少,但多数是厂商文档的复读,真正把“怎么部署 YOLO 跑起来”讲清楚的并不多。我花了两周时间从零摸了一遍,踩了不少坑,也沉淀了一些经验…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉