MS SQL存储过程生成脚本创建现有数据库的副本

时间:2014-05-09 15:05:16

标签: database sql-server-2008 stored-procedures sql-scripts

我想在SQL Server 2008中创建数据库副本方面有所帮助。所以我找到了这篇文章 http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema-stored-procedure-functions-triggers-tables-views-constraints-and-all-other-database-objects/
它告诉我们如何生成一个创建整个数据库副本的脚本,包括数据,键约束,触发器等,这很好,但是我希望自动化这个过程,这样每个月左右我就能运行一次存储过程。生成此脚本以使用所有当前数据创建数据库的副本,并运行脚本以创建数据库副本。这可能吗?请帮忙。

由于

1 个答案:

答案 0 :(得分:0)

假设执行数据库的备份和恢复是可以接受的 - 这就是BACKUPRESTORE AdventureWorks的代码可能是什么样子

BACKUP DATABASE [AdventureWorks2012] TO  DISK = N'd:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\AdventureWorks2012.bak' 
WITH NOFORMAT, NOINIT,  NAME = N'AdventureWorks2012-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

请注意"复制"数据库的名称是AdventureWorks2012_Copy

RESTORE DATABASE [AdventureWorks2012_Copy] FROM  DISK = N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\AdventureWorks2012.bak' 
WITH  FILE = 1,  MOVE N'AdventureWorks2012_Data' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Copy_Data.mdf',  
MOVE N'AdventureWorks2012_Log' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Copy_log.ldf',  NOUNLOAD,  STATS = 5

GO

由于它是通过编写SSMS GUI功能的脚本生成的,因此代码有点冗长。

您可能还想考虑是否要删除.bak文件,或者您可能希望重复执行此操作的过程。