【问题标题】:MS SQL Stored procedure to generate a script create a copy of existing databaseMS SQL 存储过程生成脚本创建现有数据库的副本
【发布时间】:2014-05-09 15:05:16
【问题描述】:

我需要在 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/
它告诉如何生成一个脚本,该脚本创建整个数据库的副本,包括数据、键约束、触发器等,这很好,但我想自动化这个过程,这样我每个月左右可以运行一次存储过程生成此脚本以使用所有当前数据创建数据库副本并运行脚本以创建数据库副本。这可能吗?请帮忙。

谢谢

【问题讨论】:

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


    【解决方案1】:

    假设执行数据库的备份和恢复是可以接受的 - 这就是代码在 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 文件,或者您可能希望设置什么流程来重复执行此操作。

    【讨论】:

      猜你喜欢
      • 2013-05-02
      • 2011-04-24
      • 2021-05-02
      • 1970-01-01
      • 2011-06-17
      • 2011-03-18
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多