You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python自动化SSMS查询导出CSV周度任务并配置定时运行

自动化实现方案

整套实现拆成Python核心导出逻辑和周度定时调度两部分,不用复杂组件,普通Windows环境就能跑通。

一、核心Python导出逻辑

你原来手动做的SSMS查数、导出CSV的操作,完全可以用Python脚本复现,步骤如下:

  1. 先装需要的依赖,执行命令:
    pip install pandas pyodbc
  2. 写脚本实现三个动作:连接SQL Server数据库、执行你原来在SSMS里跑的SQL语句、把结果存成指定路径的CSV文件。
    可直接套用的脚本模板:
    import os
    from datetime import datetime
    import pandas as pd
    import pyodbc
    
    # -------------------------- 以下配置按需修改 --------------------------
    # 数据库连接配置
    DB_SERVER = "你的SQL Server实例地址,和SSMS登录时填的服务器名一致"
    DB_NAME = "要查询的数据库名"
    DB_USER = "数据库登录账号"
    DB_PWD = "数据库登录密码"
    ODBC_DRIVER = "{ODBC Driver 17 for SQL Server}" # 本地安装的ODBC驱动版本对应即可
    # 你原来在SSMS中运行的完整SQL语句,直接粘贴进来
    EXPORT_SQL = """
    SELECT date, clientnumber, clientID, orderid
    -- 后面补全你原来的FROM、WHERE等语句逻辑
    FROM 你的业务表
    WHERE 你的时间筛选等条件
    """
    # CSV保存的文件夹,必须写绝对路径
    SAVE_DIR = r"C:\指定的CSV存储文件夹全路径"
    # ---------------------------------------------------------------------
    
    def main():
        # 生成带时间戳的文件名,避免多次运行文件覆盖
        save_file_name = f"weekly_data_export_{datetime.now().strftime('%Y%m%d')}.csv"
        save_full_path = os.path.join(SAVE_DIR, save_file_name)
    
        # 拼接连接字符串,要是你用Windows身份验证登SSMS,就把UID、PWD两行删掉,加Trusted_Connection=yes;
        conn_str = (
            f"DRIVER={ODBC_DRIVER};"
            f"SERVER={DB_SERVER};"
            f"DATABASE={DB_NAME};"
            f"UID={DB_USER};"
            f"PWD={DB_PWD};"
            "TrustServerCertificate=yes;"
        )
        # 连接数据库查数,自动关闭连接
        with pyodbc.connect(conn_str) as conn:
            result_df = pd.read_sql(EXPORT_SQL, conn)
        
        # 导出CSV,用utf-8-sig编码避免Excel打开中文乱码
        result_df.to_csv(save_full_path, index=False, encoding="utf-8-sig")
        print(f"导出完成,文件路径:{save_full_path},共导出{len(result_df)}行数据")
    
    if __name__ == "__main__":
        main()
    
  3. 手动运行几次脚本,对比导出的CSV和你之前手动从SSMS复制粘贴的结果,确认字段、数据量完全一致再往下走。

二、周度定时调度配置

不推荐用Python内置的schedule这类库做定时,需要脚本一直常驻运行,进程意外退出就会漏跑,直接用系统自带的调度工具最稳定:

  • 如果是Windows环境:用系统自带的「任务计划程序」
    • 创建基本任务,触发器选择「每周」,设置好你需要执行的星期几、具体时间点
    • 操作选择「启动程序」,程序路径填本地python.exe的绝对路径(cmd执行where python可查到),参数栏填你写的导出脚本的绝对路径
    • 保存后右键点任务选「运行」,测试调度是否能正常触发、生成文件
  • 如果是Linux服务器环境:用crontab配置即可,执行crontab -e添加对应调度规则,比如每周一早上8点跑脚本的规则示例:
    0 8 * * 1 /usr/bin/python3 /你的脚本存放路径/export_script.py

三、常见踩坑提醒

  • 所有路径都写绝对路径,不要用相对路径:定时任务执行时的工作目录和你手动跑脚本的目录不一致,用相对路径大概率会出现找不到文件夹、文件存错位置的问题
  • 数据库账号尽量用固定的服务账号,不要用经常改密码的个人域账号,避免密码过期后连接失败
  • 本地要安装对应版本的SQL Server ODBC驱动,没装的话pyodbc会报驱动找不到的错误
  • 可以在脚本里加简单的异常捕获和日志记录,跑失败的时候记清楚报错原因,不用每次蹲点看执行结果

内容的提问来源于stack exchange,提问作者Sami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 10:45:49