我需要通过脚本在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中执行恢复(所有任务 - 恢复数据库)时,将恢复所有这些对象。我错过了一些参数吗?
答案 0 :(得分:2)
备份数据库并从文件还原时,它将包括所有表,视图,存储过程等。您将获取旧文件或备份失败。
您的语法是正确的。以下是RESTORE
的完整文档以及如何使用它来复制数据库。
http://technet.microsoft.com/en-us/library/ms186858.aspx#copying_db_using_bnr
删除删除新数据库,删除与其关联的所有文件,包括备份文件。然后重新开始。