用于将.bak还原到新数据库的TSQL语法

时间:2010-04-27 12:20:37

标签: tsql

我需要从生产数据库的.bak自动创建重复数据库。我已经通过GUI完成了大量的操作,但是当从命令行执行时,我对各种开关感到有点困惑,特别是文件名,并确保所有权被正确复制。

只需查找完成该操作的RESTORE的TSQL语法。

2 个答案:

答案 0 :(得分:10)

假设您使用的是SQL Server 2005或2008,最简单的方法是使用SQL Server Management Studio中还原数据库对话框顶部的“脚本”按钮。这将自动创建一个T-SQL脚本,其中包含以您填充对话框的方式配置的所有选项/设置。

答案 1 :(得分:2)

请看这里:How to: Restore a Database to a New Location and Name (Transact-SQL),它有一个很好的例子:

  

此示例创建一个新数据库   名为MyAdvWorks。 MyAdvWorks是一个   现有AdventureWorks的副本   包含两个文件的数据库:   AdventureWorks_Data和   AdventureWorks_Log。这个数据库使用   简单的恢复模型。该   AdventureWorks数据库已经存在   存在于服务器实例上,所以   必须还原备份中的文件   到一个新的位置。 RESTORE   FILELISTONLY语句用于   确定的数量和名称   正在恢复的数据库中的文件。   数据库备份是第一个   在备份设备上设置备份。

USE master
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks_Backup is the name of the backup device.
RESTORE FILELISTONLY
   FROM AdventureWorks_Backup
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
   FROM AdventureWorks_Backup
   WITH RECOVERY,
   MOVE 'AdventureWorks_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf', 
   MOVE 'AdventureWorks_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf'
GO

这也有助于:Copying Databases with Backup and Restore