复制数据库的 T-SQL 脚本

mar*_*c_s 7 restore sql-server

我想找到一种基于 T-SQL 脚本的方法来将我的“PROD”数据库(它是只读的并且由几个文件组组成)复制到一个可读/可写的“EDIT”数据库中,我可以在其中使用和编辑数据.

我知道复制数据库向导,并且现在正在使用它 - 但是,我更喜欢自动执行此操作,以便单个脚本可以从备份中恢复 PROD 数据库并将其复制到 EDIT 数据库。

T-SQL 中似乎没有“COPY DATABASE”命令,我也找不到任何其他方法来实现这一点——除了两次恢复备份之外。真的吗?有没有更好的方法来做到这一点?

我想做的是:

  1. 从磁盘开始还原,进入“MyPROD_Database”
  2. 完成后,我想复制刚刚恢复的数据库到“MyEDIT_Database”
  3. 作为最后一步,我想将我的 PROD 数据库的文件组设置为只读

最好全部包含在一个 T-SQL 脚本中,我可以从 SSMS 和/或 sqlcmd 运行该脚本。

系统是SQL Server 2005(备份的地方)和SQL Server 2008(我恢复的地方)。

手套就在那里 - 谁来接它?:-)

马克

Bob*_*Bob 7

SQL Server发布向导可以通过命令行参数来自动完成。

帮助页面

以下命令将使用 SQL Server 身份验证和用户名“Alice”和密码“7h92-v6k3”从名为 MYSERVER 的机器上的默认实例编写 FooDB 数据库到文件 C:\FooDB.sql:

sqlpubwiz script -d FooDB -S MYSERVER -U Alice -P 7h92-v6k3 C:\FooDB.sql
Run Code Online (Sandbox Code Playgroud)

因此,一旦您拥有该脚本,您就可以使用SQLCMD在其他数据库实例上运行它。

sqlcmd -S MYSERVER -U Alice -P 7h92-v6k3 -i C:\FooDB.sql -o 
Run Code Online (Sandbox Code Playgroud)


Yis*_*hai 3

SSIS 有复制数据库功能,因此您必须通过 SSIS 执行 T-SQL,然后您可以拥有复制数据库作为该过程中的一个步骤。