首页 > 解决方案 > SQL Server 2016。克隆/复制同一服务器上的数据库到现有的不同数据库保留相同的文件

问题描述

我做了关于如何复制数据库的作业,有人说 mdf 和日志文件需要新名称,有人说 REPLACE 会处理它。

我在同一台服务器上,SQL Server 2016。我没有创建新文件或对它们进行任何复制或重命名的自由。也不能使用 DBCC(用于 CLONE)。

SourceDB is existing db : 10 tables.
SourceDB_Data  c:\SPath\SourceDB.mdf
SourceDB Log  c:\SPath\SourceDB_log.ldf

NewDB is existing db : 3 tables, 2 views
NewDB_Data c:\NewDBPath\NewDB.mdf
NewDB_Log  c:\NewDBPath\NewDB_log.ldf

主要是这些数据库的结构完全不同,但我需要将结构和所有内容复制到 NewDB 中。我无法删除/重新创建它,连接到 NewDB 的句柄太多,如果它消失,它们将开始响铃。唉,我有这个规则。在任何情况下我都不能放弃这个 NewDB。

尽管。我可以在 NewDB 上做 DDL,也许作为最后的手段我可以在上面重新创建 SourceDB Schema?

我的计划仍然是 bkup 只是为了这个案子。这会起作用并在 NewDB 上保持相同的逻辑和物理文件名吗?不想产生任何错误)。谢谢

  1. Bkup SourceDB
    'c:\Path\to\SourceDB.buk'
  2. 将 NewDB 设置为单一模式
  3. 运行脚本:

    使用替换从磁盘还原数据库 NewDB = 'c:\Path\to\SourceDB.bak'

目标是使用 NewDB.MDF 名称和 SourceDB 的内容来获取 NewDB(保留旧名称)。

标签: sqlsql-server

解决方案


推荐阅读