批处理执行sql语句备份数据库
近日由于工作原因,需要下班前对数据库进行每日备份操作(必须将数据库备份到指定目录),仔细一想虽然sql数据库的备份不难,但是每天这样做也太麻烦了,想想能不能用简单的方法完成这个任务呢?虽然我个人本身对编程没什么兴趣更谈不上水平了,但是修改两个批处理还是没问题的,在百度2天后(我承认我比较笨哈),终于找到了批处理备份sql数据库的答案!经过简单的修改已经可以正式使用啦!下面贴出批处理执行sql语句的源码,当然只要能执行sql语句那么备份也就不是问题了吧?哈哈……
建议将这个批处理文件放置在安装有数据库的服务器上,或者至少要安装在装有sql客户端的主机上!本次使用环境为安装于win2003 + sql2000
要用批处理完成对数据库的操作需要两个条件:
- 你想要的可执行的sql语句(数据库的备份也可通过sql语句来实现)
- 连接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语句备份数据库/
赞赏
微信赞赏支付宝赞赏
发表评论