克隆没有任何数据的数据库模式
Clone a database schema without any data
我需要我们的最终用户从我们的 Web 应用程序 UI "clone" 一个数据库。我可以通过备份源数据库并将其恢复到新数据库来 "clone" 数据库。这样,我 "clone" table 架构和数据。
我的问题是 - 有什么方法可以 "clone" 仅 table 架构,而无需数据?我知道我们可以手动编写数据库脚本,然后 运行 该脚本。但是我们的 table 架构经常变化(我们定期添加新列和 tables)并且我们不想更新这个脚本。谢谢。
基本上你必须:
- 保存数据
- 将备份还原到新数据库(使用
with move
选项)
- 连接到新数据库然后
exec sys.sp_MSforeachtable 'truncate table ?'
PS:您可能必须禁用 FK 约束(如果有的话)。
另一个解决方案:使用Entity Framework数据库优先构建一个小程序。使用指向新数据库的连接字符串启动所述程序。
右键单击数据库 -> 任务 -> 生成脚本
在“设置脚本选项”页面上单击“高级”
常规 -> 脚本的数据类型 = 仅模式
使用 SQL Server data tools 您可以生成架构差异并仅将更改应用到目标数据库。
我需要我们的最终用户从我们的 Web 应用程序 UI "clone" 一个数据库。我可以通过备份源数据库并将其恢复到新数据库来 "clone" 数据库。这样,我 "clone" table 架构和数据。
我的问题是 - 有什么方法可以 "clone" 仅 table 架构,而无需数据?我知道我们可以手动编写数据库脚本,然后 运行 该脚本。但是我们的 table 架构经常变化(我们定期添加新列和 tables)并且我们不想更新这个脚本。谢谢。
基本上你必须:
- 保存数据
- 将备份还原到新数据库(使用
with move
选项) - 连接到新数据库然后
exec sys.sp_MSforeachtable 'truncate table ?'
PS:您可能必须禁用 FK 约束(如果有的话)。
另一个解决方案:使用Entity Framework数据库优先构建一个小程序。使用指向新数据库的连接字符串启动所述程序。
右键单击数据库 -> 任务 -> 生成脚本
在“设置脚本选项”页面上单击“高级”
常规 -> 脚本的数据类型 = 仅模式
使用 SQL Server data tools 您可以生成架构差异并仅将更改应用到目标数据库。