Sql 使用脚本从数据库还原数据库
我正在寻找一个简单的脚本,我可以用另一个数据库覆盖一个数据库。我们有一个带有主模式和数据的主数据库,开发人员经常想用主数据库的完全覆盖来摆脱混乱的数据库。目前,我使用SQL Server Studio和GUI控件实现了这一点,但我希望类似于从备份文件恢复时使用的方法(只是没有备份文件步骤):Sql 使用脚本从数据库还原数据库,sql,sql-server-2005,Sql,Sql Server 2005,我正在寻找一个简单的脚本,我可以用另一个数据库覆盖一个数据库。我们有一个带有主模式和数据的主数据库,开发人员经常想用主数据库的完全覆盖来摆脱混乱的数据库。目前,我使用SQL Server Studio和GUI控件实现了这一点,但我希望类似于从备份文件恢复时使用的方法(只是没有备份文件步骤): 从另一个数据库而不是备份文件获取数据库的语法是什么?我每天都使用此脚本将生产备份恢复到测试数据库 生产数据库和测试数据库的名称是相同的,假设它的名称是MyDb 删除测试数据库 运行脚本 如果要从生成的脚本
从另一个数据库而不是备份文件获取数据库的语法是什么?我每天都使用此脚本将生产备份恢复到测试数据库
如果要从生成的脚本文件还原数据库,可以使用windows命令行 打开CDM并运行以下命令(database=NorthWind,脚本文件C:\MyScript.sql)
在server studio中,在顶部的每个面板上都有一个“脚本”按钮,该按钮将向您显示它在新窗口中执行的sql。这只是一个建议,但对于这样一个问题,DBA经常访问的www.serverfault.com更有可能帮助您更好地了解Hanks@remi bourgarel,我不知道为什么我以前从未使用过那个小按钮。按照IDE生成的脚本,SQL Server似乎只是备份到一个备份文件,然后将该文件恢复到被覆盖的数据库中。好吧,我会。。。
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
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
sqlcmd -S localhost -d NorthWind -i "C:\MyScript.sql"