使用 Visual Studio 数据库项目中的数据向现有 table 添加外键约束

Add foreign key constraint to existing table with data in a Visual Studio database project

我有一个 Visual Studio 数据库项目涉及 SQL Server 2014 数据库。我需要为现有父 table 创建子 table。父级已经有外键列,我需要将约束添加到新的父级 table(FK 在子级上并指向父级)。我想保留数据。

当前,部署过程创建新的 table 和外键。 post 部署脚本将子记录添加到新子 table。

我的问题是FK失败,因为没有添加子记录。 我无法在预部署中添加子记录,因为那时 table 不存在。

我无法在预部署中禁用约束,因为它是在部署中创建的。

这似乎是常有的事。是否有既定的方法来做到这一点?

这应该不是问题。默认情况下,数据库项目使用 NoCheck 选项创建约束 - 这意味着 SQL 服务器将不会验证数据。然后,在 postDeploy 之后它将检查约束。查看您的部署脚本,它将验证这一点。