使用脚本从数据库恢复数据库

时间:2010-10-15 07:44:36

标签: sql sql-server-2005

我正在寻找一个简单的脚本,我可以用另一个数据库覆盖一个数据库。我们有一个带有主模式和数据的主数据库,并且每隔一段时间开发人员就会想要从主服务器中完全覆盖他的混乱数据库。我目前使用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

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

2 个答案:

答案 0 :(得分:1)

我每天都使用这个脚本将生产备份恢复到测试数据库。

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

  2. 删除测试数据库

  3. 运行脚本


  4. 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 
    

答案 1 :(得分:0)

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

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

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