【发布时间】:2010-11-03 03:39:30
【问题描述】:
目前在我们的数据库设计中,我们有两个实体之间的循环引用。换句话说,我们在每个表中都有引用彼此主键的外键。为了在这些表中插入记录,我们需要执行延迟约束检查。这在 SQL Server 2008 中可行吗?我知道 Oracle DDL 对此有特殊的语法。
【问题讨论】:
目前在我们的数据库设计中,我们有两个实体之间的循环引用。换句话说,我们在每个表中都有引用彼此主键的外键。为了在这些表中插入记录,我们需要执行延迟约束检查。这在 SQL Server 2008 中可行吗?我知道 Oracle DDL 对此有特殊的语法。
【问题讨论】:
在 SQL Server 中没有本地方法来执行延迟约束检查。
您的最佳选择可能是在第一个表的外键列中插入一个 NULL 值,直到插入第二条记录,然后作为同一事务的一部分,更新第一个表中的外键列。
我很感兴趣 - 您的循环引用的商业原因是什么?这绝对是一个非凡的要求。
还可以查看this thread,关于同一主题。
【讨论】: