python 脚本备份mssql数据库并删除数据库
2024-09-01 13:45:52
一、实现脚本
# -*- 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掉连接的数据库链接
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+']')
最新文章
- ubuntu如何安装nodejs最新版 本
- js时间Date对象介绍及解决getTime转换为8点的问题
- java判断时间是否是今天
- 详解Bootstrap按钮组件
- openfire消息通知推送
- hadoop之eclipse环境的配置
- 2014 青年歌手大赛 AC
- Linux学习(三)putty,xshell使用以及密匙登陆
- U68641 划水(swim.pas/c/cpp)
- 【洛谷P1072】Hankson 的趣味题
- github_地址
- php--------合并2个数字键数组的值
- SSH框架下载地址
- 改变文件上传input file类型的外观
- kafka问题集(二):__consumer_offsets topic的分区中有一个分区数据很多,多达1T
- 转载-SVN常用命令
- Zabbix——设置报警阈值
- SIFT 特征点提取算法
- Gym - 101128H:Sheldon Numbers
- Tiny4412 Android 启动流程
热门文章
- 三十一、Gawk基础入门
- FOI冬令营 Day4
- 解决微信小程序要求TLS版本不低于1.2问题
- go struct 自定义标签获取
- [转] node.js express的安装与部署,以及pm2下的运行启动。
- 7个最好的Java机器学习开发库
- python 混入类MixIn
- Android Studio 3.5新特性
- python小白之np功能快速查
- 关于define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));的理解