繁体   English   中英

使用脚本从数据库还原数据库

[英]Restore database from database using script

我正在寻找一个简单的脚本,可以用它覆盖另一个数据库。 我们有一个具有主架构和数据的主数据库,并且开发人员常常每隔一段时间就要用主数据库的完全覆盖来销毁自己混乱的数据库。 我目前使用SQL Server Studio和GUI控件来完成此操作,但是我想要类似于从备份文件还原时使用的内容(只是没有备份文件步骤):

RESTORE DATABASE [SlaveDB]
FROM  DISK = N'E:\Backup\MasterDB.bak'
WITH  FILE = 1,  
MOVE N'SlaveDB_Data' TO N'E:\Data\SlaveDB_Data.mdf',
MOVE N'SlaveDB_Log' TO N'E:\Log\SlaveDB_Log.ldf',
NOUNLOAD,  
STATS = 10
GO

从另一个数据库而不是备份文件获取数据库的语法是什么?

我每天都使用此脚本将生产备份还原到测试数据库。

  1. 生产和测试中的数据库名称相同,假设其名称为MyDb。

  2. 删除测试数据库

  3. 运行脚本


RESTORE FILELISTONLY 
FROM DISK   = 'E:\WorkCopy\BackUp.bak'

RESTORE DATABASE [MyDb]
FROM DISK   = 'E:\WorkCopy\BackUp.bak'
WITH 
MOVE  'MyDbPrimary' TO 'D:\data\MyDb\WorkCopy.mdf',
MOVE 'MyDbImp' TO 'D:\data\MyDb\WorkCopy_1.ndf',
MOVE 'MyDbCut' TO 'D:\data\MyDb\WorkCopy_2.ndf',
MOVE 'MyDbIX' TO 'D:\data\MyDb\WorkCopy_3.ndf',
MOVE 'MyDbAUD' TO 'D:\data\MyDb\WorkCopy_4.ndf',
MOVE 'MyDbLog' TO 'D:\data\MyDb\WorkCopy_5.ldf',
move 'sysft_FTIndexCatalog' TO 'D:\data\MyDb\FTIndexCatalog'


ALTER DATABASE MyDb
Set RECOVERY  SIMPLE 

如果要从生成的脚本文件还原数据库,则可以使用Windows命令行。

打开CDM并运行以下命令( database = NorthWind,脚本文件C:\\ MyScript.sql

sqlcmd -S localhost -d NorthWind -i "C:\MyScript.sql"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM