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

use*_*874 1 sql sql-server stored-procedures

我有示例数据库,在我的asp.net项目中,我需要用另一个名称创建该数据库的副本.我正在考虑使用存储过程来完成它.

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

Tho*_*ger 8

完成此任务的最简单方法是执行数据库的备份和还原:

backup database YourDatabaseName
to disk = 'C:\Yourbackupdir\BackupFile.bak'
with copy_only;
go
Run Code Online (Sandbox Code Playgroud)

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

restore database YourNewDatabaseName
from disk = 'C:\Yourbackupdir\BackupFile.bak';
go
Run Code Online (Sandbox Code Playgroud)

同样,如果它位于同一台服务器上,或者如果您没有类似的数据库文件目录结构,那么您可能需要指定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
Run Code Online (Sandbox Code Playgroud)

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