一、实现脚本

# -*- 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+']')

  

最新文章

  1. ubuntu如何安装nodejs最新版 本
  2. js时间Date对象介绍及解决getTime转换为8点的问题
  3. java判断时间是否是今天
  4. 详解Bootstrap按钮组件
  5. openfire消息通知推送
  6. hadoop之eclipse环境的配置
  7. 2014 青年歌手大赛 AC
  8. Linux学习(三)putty,xshell使用以及密匙登陆
  9. U68641 划水(swim.pas/c/cpp)
  10. 【洛谷P1072】Hankson 的趣味题
  11. github_地址
  12. php--------合并2个数字键数组的值
  13. SSH框架下载地址
  14. 改变文件上传input file类型的外观
  15. kafka问题集(二):__consumer_offsets topic的分区中有一个分区数据很多,多达1T
  16. 转载-SVN常用命令
  17. Zabbix——设置报警阈值
  18. SIFT 特征点提取算法
  19. Gym - 101128H:Sheldon Numbers
  20. Tiny4412 Android 启动流程

热门文章

  1. 三十一、Gawk基础入门
  2. FOI冬令营 Day4
  3. 解决微信小程序要求TLS版本不低于1.2问题
  4. go struct 自定义标签获取
  5. [转] node.js express的安装与部署,以及pm2下的运行启动。
  6. 7个最好的Java机器学习开发库
  7. python 混入类MixIn
  8. Android Studio 3.5新特性
  9. python小白之np功能快速查
  10. 关于define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));的理解