![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 19:45 |
共 47,811 主题排行 / 349,896 发帖 / 今日 1 篇 / 48,254 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 【原创】批处理完成SQLSERVER数据库的附加、分离。 |
| 可打印版本 1,169 / 7 |
| 第1楼 augvii | 发表于 2008-09-24 14:54 |
| 初级用户 发帖 17 积分 38 | |
|
【原创】批处理完成SQLSERVER数据库的附加、分离。 功能:把同目录下的.MDF、.LDF数据库备份文件,复制到SQLSERVER数据库文件目录中。进行附加和分离操作。
还有很多问题还没解决,如:服务器未开返回的错误如何判断,如何在数据库中停止和启动MSSQLServer..等。 谢谢HAT版主、vampire的帮助 =============================================== 代码: --------------------------------------------------------------------------------------------------------- @echo off cls color 0a rem SQLSERVER2000 数据库附加、分离的小程序 rem 下面是变量的一些定义,dbloginname是数据库登入名,dbloginpwd是数据库登入密码,dbname是数据库名,dbmdf和 dbldf是数据库文件 set dbloginname=sa set dbloginpwd=wl set dbname=workflow set dbmdf=workflow_Data.MDF set dbldf=workflow_Log.LDF >"%temp%\my.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell") >>"%temp%\my.vbs" echo WScript.Echo WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Setup\SQLDataRoot") for /f "delims=" %%a in ('cscript /nologo "%temp%\my.vbs"') do set SQL=%%a\Data echo SQLSERVER数据库文件目录路径:%SQL% echo. echo 正在复制mdf,请等待... copy %dbmdf% "%SQL%" echo 正在复制ldf,请等待... copy %dbldf% "%SQL%" echo 复制的文件名是:%dbmdf%和%dbldf% :start cls echo. echo============================================================================ echo. echo 请输入选择项后,按回车确认 echo 1.附加数据库 echo 2.分离数据库 echo 3.退出 echo. echo author:AUGVII echo============================================================================ set /p var=请选择: if %var% == 1 goto attachdb if %var% == 2 goto detachdb if %var% == 3 goto exit :detachdb osql -U"%dbloginname%" -P"%dbloginpwd%" -S"127.0.0.1" -Q"sp_detach_db '%dbname%'" echo 处理中... echo db detach successful! pause goto start :attachdb osql -U"%dbloginname%" -P"%dbloginpwd%" -S"127.0.0.1" -Q"sp_attach_db '%dbname%','%SQL%\%dbmdf%','%SQL%\%dbldf%'" echo 处理中... echo db attach successful! pause goto start :exit echo 欢迎使用... pause ================================================== |
|
| 第2楼 Batcher | 发表于 2008-09-24 15:14 |
| 初级用户 发帖 16 积分 33 | |
|
启动
停止 |
|
| 第3楼 augvii | 发表于 2008-09-24 15:29 |
| 初级用户 发帖 17 积分 38 | |
|
如何对错误进行判断,再进行处理呢?
如:服务器未打开,进行附加就会报错SQL Server 不存在或访问被拒绝 errorlevel 是多少?哪里有这方面的资料? 好像可以echo出来。 ![]() [ Last edited by augvii on 2008-9-24 at 03:35 PM ] |
|
| 第4楼 Batcher | 发表于 2008-09-24 15:30 |
| 初级用户 发帖 16 积分 33 | |
| 第5楼 augvii | 发表于 2008-09-24 15:38 |
| 初级用户 发帖 17 积分 38 | |
|
echo %errorlevel%
启动为:0 未启动为:1 这样判断可以吗? ------------------------------------------- |
|
| 第6楼 augvii | 发表于 2008-09-24 15:56 |
| 初级用户 发帖 17 积分 38 | |
|
sc 还像在win2000下不支持啊,有没有更通用点的啊。我的系统是win2000的
|
|
| 第7楼 Batcher | 发表于 2008-09-24 16:00 |
| 初级用户 发帖 16 积分 33 | |
| 第8楼 augvii | 发表于 2008-09-24 16:23 |
| 初级用户 发帖 17 积分 38 | |
|
如果该数据库已经存在,再附加。数据库已经分离,再分离。
这两种错误该如何获取呢? |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |