BAT 操作数据库(附加,分离,删除,还原)

BAT代码:

@echo off
Title DataBase
Color 0A
:caozuo
echo.
echo ═══════════════════════════════════════
echo 【数据库操作】:
echo    1.删除数据库
echo    2.还原数据库
echo    3.操作3
echo    4.操作4
echo    5.操作5
set /p n=输入操作号:
if "%n%"=="" cls&goto :caozuo
if "%n%"=="1" call :1
if "%n%"=="2" call :2
if "%n%"=="3" call :3
if "%n%"=="4" call :4
if "%n%"=="5" call :5
if /i "%n%"=="n" exit
pause
goto :eof 

:1
echo. 删除数据库开始…………
@osql.exe /Usa /[email protected] /Slocalhost /dmaster /i C:\Users\310171611\Desktop\142\database\DropDB.sql
echo. 删除数据库结束…………
goto :caozuo 

:2
echo. 还原数据库开始…………
@osql.exe /Usa /[email protected] /Slocalhost /dmaster /i C:\Users\310171611\Desktop\142\database\RestoreDB.sql
echo. 还原数据库结束…………
goto :caozuo
goto :caozuo 

:3
echo 操作3
goto :caozuo 

:4
echo 操作4
goto :caozuo

:5
echo 操作5
goto :caozuo

bat文件中调用的是 dos命令 osql,大家对应的修改相应的链接字符串即可

RestoreDB.sql,DropDB.sql 为常用的sql文件,可以换成任意的sql

 DropDB.sql 

use master
go
alter database dbEMS set single_user with rollback immediate
--将数据库回滚到原始配置状态
go
drop database dbEMS--删除数据库
GO
use master
go
alter database dbEMSConfig set single_user with rollback immediate
--将数据库回滚到原始配置状态
go
drop database dbEMSConfig--删除数据库
GO

RestoreDB.sql

USE MASTER
go
if db_id(‘dbEMS‘) is not null
DROP DATABASE dbEMS
GO
create DATABASE dbEMS
RESTORE DATABASE dbEMS
   FROM DISK = ‘C:\Users\310171611\Desktop\142\database\dbEMS_A.bak‘
   WITH MOVE ‘dbEMS‘ TO ‘C:\database\dbEMS.mdf‘, 

   MOVE ‘dbEMS_log‘ TO ‘C:\database\dbEMS_log.ldf‘,
STATS = 10, REPLACE
GO

declare @msg varchar(70)
if (@@ERROR <> 0 )
begin
   select @msg=convert(char(26),getdate(),9)+‘-----dbEMS还原数据失败或出现异常‘
   print @msg
end
else
begin
   select @msg=convert(char(26),getdate(),9)+‘-----dbEMS数据库还原完毕‘
   print @msg
END
-------------------------------------------------------------------------
USE MASTER
go
if db_id(‘dbEMSConfig‘) is not null
DROP DATABASE dbEMSConfig
GO
create DATABASE dbEMSConfig
RESTORE DATABASE dbEMSConfig
   FROM DISK = ‘C:\Users\310171611\Desktop\142\database\dbEMSConfig_A.bak‘
   WITH MOVE ‘dbEMSConfig‘ TO ‘C:\database\dbEMSConfig.mdf‘, 

   MOVE ‘dbEMSConfig_log‘ TO ‘C:\database\dbEMSConfig_log.ldf‘,
STATS = 10, REPLACE
GO

declare @msg varchar(70)
if (@@ERROR <> 0 )
begin
   select @msg=convert(char(26),getdate(),9)+‘-----dbEMSConfig还原数据失败或出现异常‘
   print @msg
end
else
begin
   select @msg=convert(char(26),getdate(),9)+‘-----dbEMSConfig数据库还原完毕‘
   print @msg
end

其他的附加,分离的功能大家可以根据自己的情况来写sql脚本。

时间: 2024-10-19 01:12:28

BAT 操作数据库(附加,分离,删除,还原)的相关文章

数据库 约束 分离 备份 还原 附加

--约束 对列的值起一个约束的作用,规定咧的值得范围 --主键,外键,非空,自增长标识列,唯一列,check 约束 select *from score --存储累加求和 alter proc qiuhe @number int as declare @sum int--定义一个变量 int类型 declare @chushizhi int--定义一个初始值 int 类型 set @sum=0 --给sum 赋值 set @chushizhi=1--赋值 当初始值为一的时候 while @chu

数据库脱机 分离 删除所有连接

无法对 数据库'UDS' 执行 删除,因为它正用于复制 sp_removedbreplication 'database' 删除所有连接 USE master; GO DECLARE @SQL VARCHAR(3000); SET @SQL = ''; SELECT @SQL = @SQL+'; KILL ' + RTRIM(SPID) FROM [sys].[sysprocesses] AS sps WHERE [sps].[dbid] = DB_ID('database'); SET @SQ

java操作数据库定时备份与还原

mysql每天23:00自动备份 public class DatabaseBackup { /** * * @param dbdir mysql数据库安装路径 * @param dbname  数据库的名称 * @param backdir 备份的目录 */ public static void backup(String dbdir, String dbname, String backdir) { Calendar calendar = Calendar.getInstance(); Si

数据库的备份、还原、分离、附加

手动备份数据库: 1.鼠标右键选择你要进行备份的数据库-任务-备份 可以在常规选项页面你可以选择备份类型是进行完整数据库备份还是差异数据库备份 2.点击添加选项,选择数据库文件的存放路径 注意文件名记得加后缀.bak,便于恢复时的查找 数据库还原: 右键数据库-还原数据库-添加需要进行还原的数据库文件路径 在还原源选项中你可以选择'源数据库','源设备'.1.选择源数据库工具会自动显示该数据库之前的一些备份,然后直接选择需要还原的数据库备份集. 2.选择源设备点击后面的...,添加需要还原的数据

SQL Server 第四堂课 用数据库语言while 循环做累加求和。以及数据库的备份,还原,分离,附加。以及check 约束

drop proc qiuhe create proc qiuhe --用数据库语言做累加求和 @n int as declare @sum int --相当于C#语言里定义变量 declare @i int set @sum=0 --再给变量赋值 ,相当于C#语言里的 int sum=0 set @i=1 -- 相当于for 循环里的 int i=1 (int i=1;i<=n;i++) while @i<[email protected] --for(int i=1;i<=n;i++

SQL server 2008数据库的备份与还原、分离(转)

一.SQL数据库的备份: 1.依次打开 开始菜单 → 程序 → Microsoft SQL Server 2008 → SQL Server Management Studio → 数据库:Dsideal_school_db既是我们需要备份的学籍数据库 图(1) 2.选择要备份的数据库“Dsideal_school_db”,点击鼠标右键 → 任务 → 备份,如图(2): 图(2) 3.在打开的“备份数据库 —Dsideal_school_db”对话框中,先点击删除,然后点击“添加”,如图(3):

sqlite学习笔记3:附加数据库和分离数据库

在前面说了如果创建一个数据库,接下来我们需要操作数据库: 但是sqlite3命令一次只能操作一个数据库,如果当前路径下有多个数据库该怎么办呢?这就需要用到附加数据库. 一  关联数据库 附加数据库实际上就是告诉sqlite3,你写的SQL语句是操作的哪一个数据库.具体如何操作呢? 基本语法如下: ATTACH DATABASE 'DatabaseName' As 'Alias-Name'; *sqlite3中的语句都需要以分好结束 使用上面的命名,如果数据库存在,将会被关联到'Alias-Nam

sql server 还原数据库后,删除用户,提示数据库主体在该数据库中拥有架构,无法删除解决方法

将另一台服务器上的数据库备份文件,在现在用的这台服务器上还原之后,再创建相同的用户名,提示用户已存在 想将之前的用户先删除掉,却提示“数据库主体在该数据库中拥有架构,无法删除解决方法” 在网上找到方法,试了一下,还真管用. --执行如下SQL语句 ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo; --然后手动删除就可以了 我看还原后的数据库中的db_owner架构所有者就是那个要删除的用户名,再看其他数据库中的db_owner架构的所有者就是db_o

第一章、关于SQL Server数据库的备份和还原(sp_addumpdevice、backup、Restore)

在sql server数据库中,备份和还原都只能在服务器上进行,备份的数据文件在服务器上,还原的数据文件也只能在服务器上,当在非服务器的机器上启动sql server客户端的时候,也可以通过该客户端来备份和还原数据库,但是这种操作实质是在服务器上进行的,备份的数据文件在服务器上,还原的数据文件也只能在服务器上,这个原则不会变,只是使用了客户端的一个工具来操作这个过程而已. 1.1.备份数据库 备份数据库有两种方式: 第一种是在企业管理器中,利用工具对数据库进行备份,这种备份的文件只会有一个,即以