批处理创建数据库

原创 2012年03月21日 22:29:27

@echo off
rem %1 为路径参数;
rem %2 为版本号;如 6.1.2
rem %3 为版本;  为“标准版”或“多探头版” 


echo 正在启动SQL SERVER服务...
net start "SQL Server (SQL2008)"


echo 正在创建数据库,请稍等...
osql -E /Q "IF Not Exists (SELECT name FROM master.dbo.sysdatabases WHERE name = N'BW_SIM') RESTORE DATABASE BW_SIM FROM DISK ='%1\Data\BW_SIM V %2 %3' WITH MOVE 'BW_SIM_Data' TO '%1\Data\BW_SIM.mdf',MOVE 'BW_SIM_log' TO '%1\Data\BW_SIM.ldf'"


rem echo 正在启动SQL代理...
rem net start sqlserveragent


echo 正在更新SQL脚本...
osql -E -i %1\Data\BW_SIM_V%2%3.sql
echo 数据库创建成功!


1 、@echo off

就是说关闭回显

@echo off并不是DOS程序中的,而是DOS批处理中的。当年的DOS,所有操作都用键盘命令来完成,当你每次都要输入相同的命令时,可以把这么多命令存为一个批处理,从此以后,只要运行这个批处理,就相当于打了几行、几十行命令。DOS在运行批处理时,会依次执行批处理中的每条命令,并且会在显示器上显示,如果你不想让它们显示,可以加一个“echo off”当然,“echo off”也是命令,它本身也会显示,如果连这条也不显示,就在前面加个“@”。

2、rem

rem使您可以在批处理文件或配置文件中加入注释。

语法rem [comment]参数comment 指定要作为注释的任何字符串。

例如:

rem %1 为路径参数;
rem %2 为版本号;如 6.1.2
rem %3 为版本;  为“标准版”或“多探头版” 


3、RESTORE DATABASE恢复数据库

RESTORE DATABASE A FROM DISK = N'D:\B' with RECOVERY,NOUNLOAD, REPLACE, STATS = 10 , MOVE '数据库逻辑名' TO '数据库A的完整路径+数据文件名.mdf', MOVE '日志逻辑名' TO '数据库A的完整路径+日志文件名.ldf'

例子:将数据库备份文件“BW_SIM_V1.0.0 标准版”还原为BW_SIM(覆盖还原)

RESTORE DATABASE BW_SIM FROM DISK = N'D:\例子\BW_SIM_V1.0.0 标准版' with RECOVERY,NOUNLOAD, REPLACE, STATS = 10,
MOVE 'bw_sim_Data' TO 'C:\Program Files\Microsoft SQL Server\MSSQL$SQL2000\Data\BW_SIM.mdf',
MOVE 'bw_sim_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL$SQL2000\Data\BW_SIM.ldf'

把 D:\测试\BW_SIM_V1.0.0 标准版 还原到数据库,数据库、日志文件放在D:\测试 路径下。

RESTORE DATABASE BW_SIM FROM DISK = N'D:\测试\BW_SIM_V1.0.0 标准版' with RECOVERY,NOUNLOAD, REPLACE, STATS = 10,
MOVE 'bw_sim_Data' TO 'D:\测试\BW_SIM.mdf',
MOVE 'bw_sim_Log' TO 'D:\测试\BW_SIM.ldf'

4、osql命令

-E

使用可信连接而不请求密码。

-Q " query "
           
            执行查询并立即退出 osql。将查询用双引号括起来,将查询中嵌入的任何内容用单引号括起来。

-i input_file

            标识包含一批 SQL 语句或存储过程的文件。小于 (<) 比较运算符可以代替 -i 使用。


5、中间要暂停,查看状态,可以加入PAUSE或者pause,例如


@echo off
rem %1 为路径参数;
rem %2 为版本号;如 6.1.2
rem %3 为版本;  为“标准版”或“多探头版” 


echo 正在启动SQL SERVER服务...
net start mssqlserver


echo 正在创建数据库,请稍等...
osql -E /Q "IF Not Exists (SELECT name FROM master.dbo.sysdatabases WHERE name = N'BW_SMS') RESTORE DATABASE BW_SMS FROM DISK ='%1\Data\BW_SMS_V%2%3' WITH MOVE 'BW_SMS_Data' TO '%1\Data\BW_SMS.mdf',MOVE 'BW_SMS_log' TO '%1\Data\BW_SMS.ldf'"


PAUSE
rem echo 正在启动SQL代理...
rem net start sqlserveragent


echo 正在更新SQL脚本...
osql -E -i %1\Data\BW_SMS_V%2%3.sql
echo 数据库创建成功!
pause





相关文章推荐

Windows批处理脚步实例-创建Oracle数据库用户并向该用户添加数据

Windows批处理使用方便、灵活,功能强大,自动化程度高,特别是在项目测试阶段,利用批处理脚步可以方便搭建测试环境或启动单元测试等,本文分三部分:简单介绍批处理用法、一个简单例子(拷贝、删除文件)、...

批处理操作Oracle数据库创建表空间、用户及导入数据

这个操作主要分两部分: 第一部分,创建.sql文件,CreateTableSpaceAndUser.sql。 第二部分,创建批处理文件import.bat。...

【MySQL数据库开发之四】MySQL NULL值操作、批处理模式、常用查询的例子、计数行、模式匹配等

本站文章均为 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/mysql/781.html          ...

Oracle10g修改安装 和 Oracle数据库卸载 和 Oracle服务项批处理命令 和 注意事项

转载: Oracle10g修改安装:  在XP系统中可以直接安装Oracle10g程序,以下内容修改为在window7上的内容:   (注:安装路径必须为英文,如果出现中文安装过程中会报错。) ...

【原】使用批处理BAT文件处理Mysql数据库

在做项目的时候,考虑到项目中很多模块是公用,数据库也是公用,所以考虑把公用模块的数据库全部用批处理生产,这样或多或少提高了一些效率。 处理方法是: 1:用一个txt保存该项目数据库名称,方便新建工...

windows常用批处理-iis重启,数据库重启,自动打开及关闭指定网页

---数据库重启--- 数据库服务器因为数据库运行会占用大量内存,如何解决呢?sqlserver重启时会自动回收内存,那么问题就变成了定时重新启动sqlserver ,大家都知道sqlserver有自...

Oracle_批处理+任务计划实现数据库自动定时备份

保证数据库数据安全的措施之一就是定期进行备份,经过最近几个项目的数据库备份工作总结了几种备份Oracle数据库的命令,和大家分享一下。 首先,新建一个文本文档,改名为备份数据库.bat 粘贴以下内容...
  • ls_man
  • ls_man
  • 2013年04月19日 13:36
  • 5405

批处理(bat)实现SQLServer数据库备份与还原

备份数据库.bat @echo off set path=%path%;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn echo 数...

windows计划任务+批处理文件实现oracle数据库的定时备份与恢复

Oracle数据库的定时备份与恢复1.  备份:1.1.  创建database_exp.bat批处理文件首先创建一个数据库导出的批处理文件,这个脚本能够备份最近七天的数据库,database_ext...

【批处理】35.备份Mysql中所有数据库——mysqldump命令

今天下午研究了一下如何备份mysql中所有数据库,感谢老高给我的提醒。 请千万要注意不要随意加【空格】啊!!! 先上代码: @echo off echo 正在建立数据库备份... d: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:批处理创建数据库
举报原因:
原因补充:

(最多只允许输入30个字)