通过存储过程创建数据库副本

时间:2013-04-18 13:18:22

标签: sql sql-server stored-procedures

我有示例数据库,在我的asp.net项目中,我需要使用其他名称创建该数据库的副本。我想用存储过程来做这件事。

有可能吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:8)

实现此目的的最简单方法是备份和恢复数据库:

backup database YourDatabaseName
to disk = 'C:\Yourbackupdir\BackupFile.bak'
with copy_only;
go

然后你可以相应地进行恢复:

restore database YourNewDatabaseName
from disk = 'C:\Yourbackupdir\BackupFile.bak';
go

同样,如果它位于同一台服务器上,或者如果您没有类似的数据库文件目录结构,那么您可能需要指定MOVE子句:

restore database YourNewDatabaseName
from disk = 'C:\Yourbackupdir\BackupFile.bak'
with
    move 'YourDataFileName' to 'C:\NewLocation\DataFile1.mdf',
    move 'YourLogFileName' to 'C:\NewLocation\LogFile1.ldf';
go

您可以通过运行restore filelistonly from disk = 'C:\Yourbackupdir\BackupFile.bak';来获取文件列表。