Python 数据库Insert语句脚本生成工具(SQL Server)

简介: Python 数据库Insert语句脚本生成工具(SQL Server)

编写这个小工具,是因为平时部署项目的时候,需要导出一些公共的数据(权限、参数设置等),覆盖插入正式环境。

话不多说,直接上代码:

import pyodbc
import warnings
import decimal
import winreg
import os
import configparser
import time
import datetime
warnings.filterwarnings('ignore')
def link():
    root_dir = os.path.split(os.path.realpath(__file__))[0]# 获取当前文件所在目录的上一级目录,即项目所在目录
    configPath = os.path.join(root_dir, "config.txt")
    cf = configparser.ConfigParser()
    cf.read(configPath)  # 拼接得到config.txt文件的路径,直接使用
    # 数据库服务器信息
    driver = cf.get("Mssql-Database", "driver")  # 因版本不同而异
    server = cf.get("Mssql-Database", "server")  
    user = cf.get("Mssql-Database", "user")
    password = cf.get("Mssql-Database", "password")
    database = cf.get("Mssql-Database", "database")
    table = cf.get("Mssql-Database", "table")
    conn = pyodbc.connect(driver=driver, server=server, user=user, password=password, database=database) #数据库链接
    cur = conn.cursor()#开启
    arr = table.split(',') #多个表查询,用逗号隔开','
    path = get_desktop() + "\\SqlDataScript"
    if not os.path.exists(path):
            os.mkdir(path)
    for ar in arr:
        sql='SELECT * FROM %s;'%ar #执行查询
        print(sql)  # 查询语句
        cur.execute(sql)
        rows = cur.fetchall()  # list
        index = cur.description
        f = open(path +"\\"+ ar +"("+ time.strftime('%Y%m%d%H%M%S') +")" +".sql","w+",encoding='utf-8') #生成脚本(表名+时间戳为文件名)
        #拼接insert语句
        for res in rows:
            sqlText = 'INSERT INTO %s('%ar
            sqlVal = 'VALUES('
            for i in range(len(index)):
                sqlText = sqlText + index[i][0] +','#字段名
                if type(res[i]) == datetime.datetime: #时间格式字段,保留时分秒(不限制的话,有时候生成的毫秒格式有问题)
                    sqlVal = sqlVal + "'%s',"%res[i].strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
                else:
                    sqlVal = sqlVal + "'%s',"%res[i] #字段内容
            sqlVal = sqlVal.strip(',') + ')' #去除最后的','
            sqlText = sqlText.strip(',') + ')' +' '+ sqlVal + ';' #字段名 + 字段内容
            print(sqlText) #打印sql
            f.write("%s\r\n" % sqlText) #文件写入
        f.close()
    conn.close() #关闭数据库链接
    os.system("start explorer "+ path) #打开文件存放目录
# 获取桌面路径
def get_desktop():
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
    return winreg.QueryValueEx(key, "Desktop")[0]
if __name__=='__main__':
    link()

执行完的效果展示:


表名加时间戳命名,临时存放桌面文件夹,并自动打开文件夹(方便查看,不用去找)。


image.png


config.txt  配置文件,搭配使用,需要访问什么数据库直接改配置文件即可。


数据库访问地址要带上端口号192.168.1.222,1433


image.png


python 打包exe:


找到文件所在目录


执行脚本pyinstaller -F BackUp.py


image.png


打包成功,exe生成的路径如下:


image.png


image.png


改个名字,把config文件一起配合使用即可。大功告成~


附上百度云的共享地址:


链接:https://pan.baidu.com/s/1AyvUDNDM2lBZlHmQNanpbA

提取码:2qkm


相关文章
|
11月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
1139 7
|
数据可视化 BI API
无缝对接云数据库:自定义报表生成工具在混合云环境下的部署指南
自定义报表生成工具通过拖拽设计、多数据源整合及自动化输出,帮助业务人员零代码创建个性化报表,解决传统工具灵活性不足、技术门槛高的问题。文章对比其与传统报表差异,列举行业应用场景(如财务、零售),并给出选型建议与主流工具(如FineReport、Power BI、板栗看板)的优劣势分析。
512 0
|
人工智能 运维 关系型数据库
|
12月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
1094 77
|
12月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
931 0
|
12月前
|
人工智能 数据库 iOS开发
DBeaver Ultimate Edtion 25.2 发布 - 通用数据库工具
DBeaver Ultimate Edtion 25.2 Multilingual (macOS, Linux, Windows) - 通用数据库工具
936 0
|
SQL 存储 数据库
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
1593 0
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
SQL Oracle 数据库
这款免费数据库工具,可能是YashanDB图形化管理的最佳选择
DBeaver for YashanDB 是一款专为国产自研数据库 YashanDB 定制的图形化管理工具,基于全球流行的开源数据库工具 DBeaver 二次开发而成。它深度适配 YashanDB 的各种架构,支持 HEAP/LSC 多形态表管理和 Oracle 生态兼容,提供高效的对象管理、智能 SQL 开发和工业级 PL/SQL 调试功能。通过可视化操作,开发者可轻松完成物化视图配置、存储过程管理等复杂任务,大幅提升效率。该工具完全免费,支持多平台,为企业级数据库管理提供了成熟解决方案。

推荐镜像

更多