2014-01-30 76 views
0

我需要通過腳本在SQL Server 2008中複製數據庫。我發現這個解決方案:數據庫副本不復制視圖,存儲過程,

BACKUP DATABASE Database1 TO DISK='C:\temp\Database1.bak'; 

RESTORE DATABASE Database2 FROM DISK='C:\temp\Database1.bak' 
WITH MOVE 'Database1' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\Database2.mdf', 
MOVE 'Database1_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\Database2_log.ldf'; 

這工作得很好,我把我所有的數據都表,但它不會複製我的視圖,存儲過程,函數,安全性(用戶,...)。

當我在管理工作室的GUI中進行恢復時(所有任務 - 恢復數據庫),所有這些對象都將被恢復。我是否缺少一些參數?

回答

2

當您備份數據庫並從文件恢復時,它將包含所有表,視圖,存儲過程等。您無法獲取舊文件或備份失敗。

您的語法無誤。以下是有關RESTORE的完整文檔以及如何使用它來複制數據庫。

http://technet.microsoft.com/en-us/library/ms186858.aspx#copying_db_using_bnr

刪除放下你的新的數據庫,刪除與它有關,包括備份文件中的所有文件。並重新開始。