批处理创建数据库

原创 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





使用bat脚本进行数据库操作

例子1:在.bat文件中调用.sql文件     A. 创建select.sql         connect to ksccs user ksccs using cvicse;       ...
  • u013046841
  • u013046841
  • 2014年06月18日 13:53
  • 1988

SQL Server 2012 新建数据库错误“无法获得数据库 'model' 上的排他锁”解决方案

SQL Server 2012 新建数据库错误“无法获得数据库 'model' 上的排他锁”解决方案
  • JavaSE2017
  • JavaSE2017
  • 2017年11月29日 10:54
  • 95

通过批处理(bat)命令创建mysql数据库及用户等

1、建立数据库文件:mysqlCreatDB.sql     create database Mydb2、为用户赋予权限文件:grantUser.sql     grant select,insert...
  • zst126
  • zst126
  • 2009年06月04日 10:44
  • 8251

Oracle之用户创建,赋权限,赋表空间

生成SQL脚本:创建表空间,用户名和密码
  • atzhangzt
  • atzhangzt
  • 2016年10月04日 12:58
  • 440

使用bat脚本操作Oracle数据库,导入

一共分为两个部分,一共为bat批处理
  • jiahengzhang
  • jiahengzhang
  • 2014年05月20日 09:35
  • 2631

Postgresql psql文件执行与批处理

示例:     新建一个批处理文件batch.sql,它包含若干子文件,子文件与批处理文件不在同一目录下,批处理文件在C:\batchexc,子文件在C:\objects内,batch.sql的内容:...
  • caijingshift
  • caijingshift
  • 2015年07月09日 13:59
  • 4621

windows批处理下操作mysql

由于需要,最近小研究了下批处理操作mysql的问题,作为记录存档。 结构是这样的,exesql.bat为批处理文件,用于操作mysql的                               ...
  • aa512690069
  • aa512690069
  • 2014年04月18日 09:37
  • 1855

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

备份数据库.bat @echo off set path=%path%;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn echo 数...
  • smartsmile2012
  • smartsmile2012
  • 2017年07月18日 15:08
  • 921

Windows下批量创建文件夹(批处理)

在Windows下批量创建文件夹起因新买了块移动硬盘,准备创建个目录结构方便后来的管理和使用。写个批处理吧,也好久不用了。使用方法一共两个文件,md.bat和mkdir.bat。使用方法非常简单。把这...
  • qq_20881087
  • qq_20881087
  • 2016年03月24日 09:47
  • 3542

win7下实现批处理创建超级用户 By Assassin

众所周知的一些小技巧,如何拿到一台机器权限,一个方法就是给该机创建一个超级用户了,那么接下来就给大家讲解一个win7下实现的过程。1.界面操作法(1)最基础创建用户代码 我们能看到cmd和控制面...
  • qq_35078631
  • qq_35078631
  • 2017年03月05日 09:04
  • 450
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:批处理创建数据库
举报原因:
原因补充:

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