我想在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/
它告诉我们如何生成一个创建整个数据库副本的脚本,包括数据,键约束,触发器等,这很好,但是我希望自动化这个过程,这样每个月左右我就能运行一次存储过程。生成此脚本以使用所有当前数据创建数据库的副本,并运行脚本以创建数据库副本。这可能吗?请帮忙。
由于
答案 0 :(得分:0)
假设执行数据库的备份和恢复是可以接受的 - 这就是BACKUP
和RESTORE
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
文件,或者您可能希望重复执行此操作的过程。