每次在不同的服务器上运行脚本时,是否会使用不同的占位符名称生成未命名的约束?

问题描述

我有一个未命名的数据库,或者它的某些约束似乎是随机生成名称

名称如:\n

当我们向客户端提供涉及数据库更改的新版本应用程序时,我们会将 Visual Studio数据库项目功能生成的脚本提供给客户端。

这次我们收到了错误报告,例如 DF___MyTable_Busin_CompE_139BEED8

当我检查我们提供的脚本时,它会在添加新的认值之前删除约束。

所以我想知道这些约束是否在不同的服务器上以不同的名称生成,然后当脚本删除现有的认约束时,它会尝试删除不存在的约束,然后在尝试删除时再次失败向字段添加新的认约束?

我更像一个 C# 人,而不是一个 sql 人,不确定这些东西是如何工作的。

解决方法

你的想法是正确的。您不能依赖生成的约束名称。

如果您要删除并重新创建约束,则不能保证在两个系统上或什至在同一系统上生成的约束名称相同。您应该始终尝试使用命名约束。