批处理执行sql语句备份数据库

近日由于工作原因,需要下班前对数据库进行每日备份操作(必须将数据库备份到指定目录),仔细一想虽然sql数据库的备份不难,但是每天这样做也太麻烦了,想想能不能用简单的方法完成这个任务呢?虽然我个人本身对编程没什么兴趣更谈不上水平了,但是修改两个批处理还是没问题的,在百度2天后(我承认我比较笨哈),终于找到了批处理备份sql数据库的答案!经过简单的修改已经可以正式使用啦!下面贴出批处理执行sql语句的源码,当然只要能执行sql语句那么备份也就不是问题了吧?哈哈……

建议将这个批处理文件放置在安装有数据库的服务器上,或者至少要安装在装有sql客户端的主机上!本次使用环境为安装于win2003 + sql2000

要用批处理完成对数据库的操作需要两个条件:

  1. 你想要的可执行的sql语句(数据库的备份也可通过sql语句来实现)
  2. 连接sql数据库并执行sql语句的程序接口(本例是通过isql.exe这个应用程序来实现的,其他的osql什么的应该也可以吧?我没试过)

备份数据库的sql语句可以用记事本编辑然后另存为mybackup.sql

DECLARE @name varchar(50)
DECLARE @datetime char(14)
DECLARE @path varchar(255)
DECLARE @bakfile varchar(255)
set @name='testdb'    --修改为你要备份的数据库名字testdb
set @datetime=CONVERT(char(8),getdate(),112) + REPLACE(CONVERT(char(8),getdate(),108),':','')
set @path='d:\Every_data_backup'  --数据库备份的目的文件夹
set @bakfile=@path+'\'+'Bak_'+@datetime+'_'+ @name
-- 执行完毕后数据库备份名字命名形式--> 'D:\Every_data_backup\Bak_20141120204839_testdb'
backup database @name to disk=@bakfile with name=@name
go

 

下面是批处理源码,请另存为backup.bat

@echo off
set path=%path%;C:\Program Files\Microsoft SQL Server\80\Tools\Binn
echo. path是指定isql.exe位置的,如果是sql2000以上版本好像没有该文件
echo. 可以下一个isql.exe到system32文件夹里面看能不能用

isql.exe -S 192.168.1.25 -U sa -P  -i mybackup.sql
echo. 以上效果是连接到192.168.1.25服务器上的sql数据库 用户名是sa密码为空,
echo. 然后执行mybackup.sql语句
echo. 在网上另外找的一个使用osql的例子,没测试大家可借鉴下:
echo. osql -S"127.0.0.1"  -U"sa" -P"123456" -d"testdb" -i"%CD%/mybackup.sql" 
echo. -U数据库连接用户名   -P数据库用户密码

echo .
echo . 数据库备份完成
echo .
echo .

rem shutdown.exe -s -t 0
rem pause

将mybackup.sql与 backup.bat内容按自己需求更该后放置在同一个文件夹中,执行backup.bat就可以完成备份操作了。备份过程中会弹出黑框,只要不是明显的报错显示就没问题了,等几分钟数据库就可以备份完成了。数据库越大需要的时间就越长!

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/批处理执行sql语句备份数据库/

赞赏

微信赞赏支付宝赞赏

wordpress被黑的反思
阿里云centos云服务器lamp入门
mysql操作速查