数据库副本不会复制视图,存储过程,

时间:2014-01-30 08:31:40

标签: sql-server database-restore

我需要通过脚本在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中执行恢复(所有任务 - 恢复数据库)时,将恢复所有这些对象。我错过了一些参数吗?

1 个答案:

答案 0 :(得分:2)

备份数据库并从文件还原时,它将包括所有表,视图,存储过程等。您将获取旧文件或备份失败。

您的语法是正确的。以下是RESTORE的完整文档以及如何使用它来复制数据库。

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

删除删除新数据库,删除与其关联的所有文件,包括备份文件。然后重新开始。