【问题标题】:Clone a database schema without any data克隆没有任何数据的数据库模式
【发布时间】:2015-02-24 15:31:04
【问题描述】:

我需要我们的最终用户从我们的 Web 应用程序 UI 中“克隆”一个数据库。我可以通过备份源数据库并将其还原到新数据库来“克隆”数据库。通过这种方式,我“克隆”了表架构和数据。

我的问题是 - 有什么方法可以“克隆”表架构,而不需要数据?我知道我们可以手动编写数据库脚本,然后运行该脚本。但是我们的表模式经常更改(我们定期添加新的列和表),我们不想更新这个脚本。谢谢。

【问题讨论】:

  • SQL Script to clone database leaving original untouched 的可能副本。您应该添加一些截断和空命令,但也许它比从头开始更容易。
  • 我相信这个问题是为了“克隆”数据库模式和数据。就我而言,我只需要“克隆”没有任何数据的模式。谢谢。
  • 截断和删除是添加到克隆脚本的简单命令。该脚本是一个几乎完整的基础。
  • 目标数据库是否与源数据库位于同一 SQL Server 实例上?目标中需要的约束、索引、安全性等,还是只是表和列?
  • 是的,它们在同一个 SQL Server 实例上。谢谢。

标签: sql-server tsql


【解决方案1】:

基本上你必须:

  • 保存数据库
  • 将备份恢复到新数据库(使用with move 选项)
  • 连接到新数据库然后exec sys.sp_MSforeachtable 'truncate table ?'

PS:如果有的话,您可能必须禁用 FK 约束。

另一种解决方案:使用Entity Framework Database First 构建一个小程序。使用指向新数据库的连接字符串启动所述程序。

【讨论】:

    【解决方案2】:

    右键单击数据库 -> 任务 -> 生成脚本

    在设置脚本选项页面上单击高级

    常规 -> 脚本的数据类型 = 仅架构

    使用SQL Server data tools,您可以生成架构差异并仅将更改应用到目标数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-25
      • 2015-02-21
      • 2017-05-01
      • 1970-01-01
      • 2011-06-23
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多