sql - 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 上保持相同的逻辑和物理文件名吗?不想产生任何错误)。谢谢
- Bkup SourceDB
'c:\Path\to\SourceDB.buk' - 将 NewDB 设置为单一模式
运行脚本:
使用替换从磁盘还原数据库 NewDB = 'c:\Path\to\SourceDB.bak'
目标是使用 NewDB.MDF 名称和 SourceDB 的内容来获取 NewDB(保留旧名称)。
解决方案
推荐阅读
- graphviz - Graphviz:自动变量?
- python - Python:如何将一个列表的排序(按最大值)应用于另一个列表的元素索引排序
- sql-server-2012 - 从一台服务器批量复制到另一台服务器
- javascript - 无需重启js即可访问php
- google-drive-api - 我可以创建本地测试环境来集成谷歌驱动器和我的网络应用程序吗
- angular - Inject Parent 组件和在 Angular 中使用 @Input() 之间的区别
- azure - 字符串值到日期格式的液体转换
- android - android片段到片段通信:通过接口更新ReceiverFragment的recyclerView
- linux - 当我尝试运行从 Windows 系统编写的 Linux 脚本时出现“没有这样的文件或目录”错误
- powershell - 尝试使用 sendkey