SQL 服务器数据工具 - 如何将数据与架构一起保存?

SQL Server Data Tools - How do I preserve data along with schema?

我一直在使用 SQL 服务器项目来管理数据库的结构。

首先我创建了项目,然后导入了一个数据库。

然后,当我需要更改架构时,比如更改字段名称,我在 SQL 服务器项目中进行,然后使用架构比较选项将其发布到实际数据库。

我想更进一步,以保存数据库所需的基本数据。例如说 OrderType table 有 2 条记录 "PHONE", "WEB"

数据库的所有新实例都需要此数据。有没有办法将它们也保存在 SQL 服务器项目中,以免它们丢失?

现在看来唯一的办法就是保留一份包含元数据的 master 数据库的实际副本,然后使用数据比较。但是,如果数据可以与模式同时发布,这样生成的数据库就完整了,那就太好了。

有两种方法可以保存静态数据并将其发布到数据库中。

  1. 有一个 "reference" 数据库,其中填充了静态数据。在发布新实例时,SQL Server Data tools 有一个 "Data Compare" 工具,可让您与实时数据库进行比较,并创建自定义脚本以使用一个数据库中的数据更新另一个数据库。

  2. 创建包含插入语句的脚本,然后 运行 在发布时创建这些脚本。 SQL Server Data tools 有两个工具可以协助完成这项工作。

    一个。打开数据table(右键单击SQL Server object explorer,然后select "View Data"),然后单击顶部的"Script" 按钮。它将为 table 中的所有行创建一个插入脚本。 More on Comparing Data from MSDN

    b。然后将这个创建的脚本作为 "Post Deployment" 脚本添加到数据库项目中。当您为数据库创建发布脚本时,项目中的任何 Post 部署脚本都会自动包含在主脚本中。 More on post deployment scripts from MSDN