2014-01-30 43 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

删除放下你的新的数据库,删除与它有关,包括备份文件中的所有文件。并重新开始。