将数据库内容克隆到现有数据库中

时间:2019-02-18 14:33:42

标签: sql sql-server azure-sql-database azure-sql-server

我有两个AzureSQL数据库,我们称它们为“ A”和“ B”。在部署过程中,我想将架构+数据从A复制到B。如何用尽可能少的代码来做到这一点?是否有内置任务或PowerShell命令可以做到这一点?

我找到了https://docs.microsoft.com/en-us/azure/sql-database/sql-database-copy,但是此命令创建了一个新数据库作为目标。我不想要,目标已经存在。

4 个答案:

答案 0 :(得分:0)

您最好的选择是删除数据库B。

DROP DATABASE [yourdatabaseB];

然后创建A的副本为B。

CREATE DATABASE yourdatabaseB  
    AS COPY OF yourdatabaseA ( SERVICE_OBJECTIVE = 'P2' ) 

尽管您不希望这样做是最快的方法。

答案 1 :(得分:0)

  1. 每个表的脚本CREATE语句
  2. 禁用所有外键
  3. 使用SSIS向导填充所有表
  4. 重新启用外键

详细信息... https://richardbriansmith.wordpress.com/2018/10/10/copy-tables-to-new-database/

答案 2 :(得分:0)

我会尝试:

  1. 将数据库A还原到C
  2. 删除数据库B
  3. 将C重命名为B

答案 3 :(得分:0)

您不能自动执行监视设置?您可能可以复制,等待复制完成,然后重命名数据库。重命名应该有足够的停机时间吗?