为什么我们不能有多个级联路径?

Sae*_*ati 13 database-design sql-server cascade

您可以看到许多关于多级联路径的问题。例如:

/sf/ask/59613781/

/sf/ask/424585101/

/sf/ask/1932918221/

但是,从我所看到和理解的情况来看,您可以在许多情况下删除子记录,而不仅仅是删除相关主记录的一种情况。

虽然在一个问题中说 SQL Server 试图通过防止这种情况发生来确保安全,但我真的不明白如果我们有多个级联路径可能会出现什么问题,以及它可以防止哪些问题使其安全

我希望有人能用通俗易懂的语言向我解释这一点,最好使用多个级联路径可能出现问题的示例。

cli*_*ath 10

这个“什么地方会出错”的问题只能由 Microsoft 或 Sybase 的开发人员来回答。当同一记录有多个级联路径时,代码可能会多次尝试删除它。如果它没有被构造来处理要删除的记录已经被删除的可能性,它可能会抛出一个错误。显然这个问题确实存在(或者被认为存在!),所以不是修复它,而是通过防止定义重复的级联路径来避免它。这显然是一条捷径,因为其他 DBMS 对这种情况是没有问题的。