2013-04-18 42 views
1

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

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

+5

备份,然后用新名称恢复? http://msdn.microsoft.com/en-gb/library/aa176752(v=sql.80).aspx –

+0

不知道它是否可能,买什么?如果您有权访问服务器以添加新数据库,只需进入SQL管理并克隆数据库即可。 – Limey

+0

请查看此博客文章[sample sql code](http://weblogs.asp.net/mschwarz/archive/2004/08/26/220735.aspx) –

回答

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';来获取文件列表。

+0

非常感谢。这是个好主意。 – user571874

+0

+1对于'with copy_only' –