问题描述
我有一个未命名的数据库,或者它的某些约束似乎是随机生成的名称。
名称如:\n
当我们向客户端提供涉及数据库更改的新版本应用程序时,我们会将 Visual Studio 的数据库项目功能生成的脚本提供给客户端。
这次我们收到了错误报告,例如 DF___MyTable_Busin_CompE_139BEED8
当我检查我们提供的脚本时,它会在添加新的默认值之前删除约束。
所以我想知道这些约束是否在不同的服务器上以不同的名称生成,然后当脚本删除现有的默认约束时,它会尝试删除不存在的约束,然后在尝试删除时再次失败向字段添加新的默认约束?
我更像一个 C# 人,而不是一个 sql 人,不确定这些东西是如何工作的。
解决方法
你的想法是正确的。您不能依赖生成的约束名称。
如果您要删除并重新创建约束,则不能保证在两个系统上或什至在同一系统上生成的约束名称相同。您应该始终尝试使用命名约束。