python 脚本备份mssql数据库并删除数据库
一、实现脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | # -*- coding=utf-8 -*- import pyodbc from datetime import datetime import pymssql import os import decimal class SQLServer: def __init__( self ,server,user,password,database,autocommit): self .server = server self .user = user self .password = password self .database = database self .autocommit = autocommit def __GetConnect( self ): if not self .database: raise (NameError, "没有数据库信息" ) self .conn = pymssql.connect(server = self .server,user = self .user,password = self .password,database = self .database,autocommit = self .autocommit) cur = self .conn.cursor() if not cur: raise (NameError, "连接数据库失败" ) else : return cur def backDb( self ,database,backpath): cur = self .__GetConnect() backPath = backpath + database + datetime.now().strftime( "%Y%m%d" ) + '.bak' sql = "BACKUP DATABASE [{0}] TO DISK = N'{1}'" . format (database,backPath) cur.execute(sql) self .conn.close() def ExecQuery( self ,sql): cur = self .__GetConnect() cur.execute(sql) self .conn.commit() self .conn.close() def main(): msg = SQLServer(server = "192.168.2.190" ,user = "sa" ,password = "P123" ,database = "master" ,autocommit = True ) msg.backDb( "wanghz" , "D:\\backup\\" ) msg.ExecQuery( "exec wanghz" ) if __name__ = = "__main__" : main( |
二、删除库存储过程。在master上创建,kill掉连接的数据库链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | USE [master] GO / * * * * * * Object : StoredProcedure [dbo].[wanghz] Script Date: 11 / 07 / 2019 15 : 20 : 29 * * * * * * / SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure [dbo].[wanghz] AS declare @dbname sysname set @dbname = 'wanghz' declare @s varchar( 50 ) declare tb cursor local for select s = 'kill ' + cast(spid as varchar) from master..sysprocesses where dbid = db_id(@dbname) open tb fetch next from tb into @s begin exec (@s) fetch next from tb into @s end close tb deallocate tb exec ( 'drop database [' + @dbname + ']' ) |
分类:
python相关
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2018-11-07 解决phpmyadmin 遇见的问题