1

SQL Azure 有一个非常方便的用于复制数据库的命令:

CREATE DATABASE NewDatabase AS COPY OF ExistingDatabase

SQL Server 2008 R2 中有类似的东西吗?我只想要一个命令来做一个没有任何 DTS、SQL Server 代理等的简单本地副本。理想情况下,我想有效地创建多个副本。

4

1 回答 1

2

可能你能做的最好的事情是备份数据库并以不同的名称恢复它,将文件移动到新位置:

backup database ExistingDatabase 
  to disk='c:\...\ExistingDatabase.bak' 
  with copyonly, format;

restore database NewDatabase
  from disk 'c:\...\ExistingDatabase.bak' 
  with move ExistingDatabase to 'NewDatabase.MDF'
  , move ExistingDatabase_log to 'NewDatabase_log.LDF';

Azure 数据库不是物理的,只是逻辑的,因此AS COPY OF可以轻松完成类似的操作。但非 Azure 数据库是真实的、物理的,您需要处理“复制”操作中涉及的所有细节,例如文件位置等。

SQL Azure 还必须允许AS COPY OF克服缺少model数据库的问题。使用 SQL Server,您可以在模型中创建模板结构,所有后续CREATE DATABASE都将继承此模板结构。

于 2010-11-12T05:33:47.090 回答