2010-11-12 52 views
1

SQL Azure的具有複製數據庫的一個非常方便的命令:SQL服務器當量( 「AS COPY OF」)

CREATE DATABASE NewDatabase AS COPY OF ExistingDatabase 

有什麼在SQL Server 2008 R2相似?我只想要一個命令來執行一個簡單的本地副本,而不需要任何DTS,SQL Server代理等。理想情況下,我想要高效地創建多個副本。

回答

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都將繼承此模板結構。