如何在SSMS中使用Python执行*.sql文件?
早上好!当然可以在SSMS里通过Python执行.sql文件,我给你分享两种实用的实现方法,你可以根据自己的习惯选择:
方法1:利用SSMS内置的Python脚本窗口执行
SSMS从17版本开始就支持内置的Python运行环境,你可以直接在SSMS里编写Python代码来读取并执行.sql文件,步骤如下:
- 打开SSMS并连接到你的SQL Server实例
- 点击顶部的「新建查询」,然后在查询窗口的语言选择下拉框(默认是SQL)里切换到
Python - 把下面的代码粘贴进去,替换掉其中的服务器、数据库、账号密码以及.sql文件路径:
import pyodbc # 建立SQL Server连接 conn = pyodbc.connect( 'DRIVER={ODBC Driver 17 for SQL Server};' 'SERVER=你的服务器名称;' 'DATABASE=目标数据库;' 'UID=你的用户名;' 'PWD=你的密码;' ) cursor = conn.cursor() # 读取本地的.sql文件内容 with open('C:/Users/xxx/Desktop/your_script.sql', 'r', encoding='utf-8') as sql_file: sql_content = sql_file.read() # 执行SQL脚本并处理结果 try: cursor.execute(sql_content) conn.commit() print("SQL脚本执行成功啦!") except Exception as error: conn.rollback() print(f"执行过程中出错了:{str(error)}") finally: # 关闭游标和连接 cursor.close() conn.close()
- 点击查询窗口上方的执行按钮(▶️),就能运行这段Python代码来执行你的.sql文件了
方法2:通过外部Python脚本执行,SSMS验证结果
如果你更习惯用本地的Python开发环境(比如VS Code、PyCharm),也可以这么操作:
- 先确保你的Python环境安装了
pyodbc库,没装的话打开命令行执行pip install pyodbc - 编写和上面类似的Python脚本,替换好连接信息和文件路径后运行脚本
- 脚本执行完成后,打开SSMS的查询窗口,写对应的SQL语句来验证脚本的执行效果(比如查询数据、查看表结构等)
一些需要注意的细节
- 如果你的.sql文件里包含
GO命令,直接用cursor.execute()可能会报错,这时候需要把脚本按GO分割成多个批次执行,示例代码如下:
# 处理包含GO的SQL脚本 sql_batches = sql_content.split('GO') for batch in sql_batches: if batch.strip(): # 跳过空的批次 cursor.execute(batch)
- Windows系统下的文件路径记得用正斜杠(/)或者双反斜杠(\),避免路径解析错误
- 确保连接SQL Server的账号拥有足够的权限,比如执行脚本里的创建表、插入数据、修改数据等操作的权限
内容的提问来源于stack exchange,提问作者RIKI
相关产品推荐
相关产品推荐

