将唯一索引作为主键是否安全?

1 sql-server primary-key change-tracking

我有一个供应商数据库,我想对其使用更改数据跟踪,但不能,因为他们的表都没有定义主键。这些表确实有唯一索引,但它们没有定义为 PK 约束。在我看来,鉴于它们已经是唯一索引,使它们成为主键将是一件安全的事情(即不会干扰或更改软件操作)。

谁能告诉我我的理解是正确的还是遗漏了什么?

Tom*_*m V 5

不,这不安全。

从查询的角度来看,它可能看起来不错,但如果您不知道应用程序如何处理主键,则不应在未先与供应商核实的情况下更改它。

你可以破坏他们的错误处理,他们未来的更新脚本等。

举个例子,在未来的升级过程中,他们可能想要更改您添加 CDC 的某些表,并且他们会收到错误消息。在这种情况下,您的合同对支持有何规定?

如果您使用的是供应商数据库,则由他们来支持它。如果您四处进行更改,您基本上会将您的系统置于他们从未测试过的状态,因此当出现问题时,他们可能会(理所当然地)告诉您您的配置不受支持。

我们不知道您在谈论什么应用程序或供应商,但如果它不支持自定义,您可能不应该在没有先询问他们的情况下自定义数据库。