SQL Azure 有一个非常方便的用于复制数据库的命令:
CREATE DATABASE NewDatabase AS COPY OF ExistingDatabase
SQL Server 2008 R2 中有类似的东西吗?我只想要一个命令来做一个没有任何 DTS、SQL Server 代理等的简单本地副本。理想情况下,我想有效地创建多个副本。
SQL Azure 有一个非常方便的用于复制数据库的命令:
CREATE DATABASE NewDatabase AS COPY OF ExistingDatabase
SQL Server 2008 R2 中有类似的东西吗?我只想要一个命令来做一个没有任何 DTS、SQL Server 代理等的简单本地副本。理想情况下,我想有效地创建多个副本。
可能你能做的最好的事情是备份数据库并以不同的名称恢复它,将文件移动到新位置:
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
都将继承此模板结构。