我想找到一种基于 T-SQL 脚本的方法将我的“PROD”数据库(它是只读的,由几个文件组组成)复制到一个读/写的“EDIT”数据库,我可以在其中使用和编辑数据.
我知道复制数据库向导,并且现在正在使用它 - 但是,我更愿意自动执行此操作,以便单个脚本可以从备份中恢复 PROD 数据库并将其复制到 EDIT 数据库。
似乎 T-SQL 中没有“COPY DATABASE”命令,我也找不到任何其他方法来实现这一点 - 除了恢复备份两次。真的吗?有没有更好的方法来做到这一点?
我想做的是:
- 开始从磁盘恢复到“MyPROD_Database”
- 完成后,我想将刚刚恢复的数据库复制到“MyEDIT_Database”
- 作为最后一步,我想将我的 PROD 数据库的文件组设置为只读
最好是一个 T-SQL 脚本,我可以从 SSMS 和/或 sqlcmd 运行。
系统是 SQL Server 2005(备份来自哪里)和 SQL Server 2008(我恢复到哪里)。
手套就在那里——谁来捡?:-)
马克
SQL Server 发布向导可以使用命令行参数自动化。
从帮助页面
因此,一旦您拥有该脚本,您将能够使用SQLCMD在您的其他数据库实例上运行它。
SSIS 具有复制数据库功能,因此您必须通过 SSIS 执行 T-SQL,然后您可以将复制数据库作为该过程中的一个步骤。
如果运行脚本的登录名具有系统管理员权限,您可以这样做:
如果您可以使用 SQLCMD 或 Management Studio 的 SQLCMD 模式来运行脚本,您还可以利用 SQLCMD 的 !! 执行操作系统命令以复制文件的语法。
但是,无论如何,这(以及复制数据库向导,就此而言)涉及使 PROD 数据库脱机以进行复制。如果这不是一个选项,那么多次还原可能是您唯一的选择。
这可以帮助: http: //www.codeproject.com/KB/database/ScriptDatabase.aspx
查看其中一些资源。
http://www.sqlservercentral.com/scripts/Backup+%2f+Restore/66372/
http://www.sqlservercentral.com/scripts/Backup+%2f+Restore/62380/
这可能有用:
SQL 多脚本
备份/恢复更快更简单: