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

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 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


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
24天前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
2月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
200 61
|
3月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
24天前
|
安全 Linux 网络安全
利用Python脚本自动备份网络设备配置
通过本文的介绍,我们了解了如何利用Python脚本自动备份网络设备配置。该脚本使用 `paramiko`库通过SSH连接到设备,获取并保存配置文件。通过定时任务调度,可以实现定期自动备份,确保网络设备配置的安全和可用。希望这些内容能够帮助你在实际工作中实现网络设备的自动化备份。
49 14
|
1月前
|
数据库 Windows
SqlServer数据恢复—SqlServer数据库所在分区损坏的数据恢复案例
一块硬盘上存放的SqlServer数据库,windows server操作系统+NTFS文件系统。由于误操作导致分区损坏,需要恢复硬盘里的SqlServer数据库数据。
|
2月前
|
SQL 存储 数据挖掘
使用Python和PDFPlumber进行简历筛选:以SQL技能为例
本文介绍了一种使用Python和`pdfplumber`库自动筛选简历的方法,特别是针对包含“SQL”技能的简历。通过环境准备、代码解析等步骤,实现从指定文件夹中筛选出含有“SQL”关键词的简历,并将其移动到新的文件夹中,提高招聘效率。
72 8
使用Python和PDFPlumber进行简历筛选:以SQL技能为例
|
2月前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
126 7
21个Python脚本自动执行日常任务(2)
|
2月前
|
SQL 程序员 Linux
推荐几个不错的数据库设计工具
推荐几个不错的数据库设计工具
168 11
|
2月前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
174 5
|
2月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
102 7