【发布时间】:2012-07-17 07:38:31
【问题描述】:
我有以下表格结构(虚构的,用于演示):
ArticlePrice
------------
Id (int, identity)
Price (float)
SpecialArticlePrice
-------------------
Id (int, identity)
ArticlePriceId (int, FK to AriclePrice.Id)
SpecialPrice (float)
在这些表之间是一个删除约束。
Foo
-----
Id (int, identity)
ArticlePriceId (int, NULL, FKto ArticlePrice.Id)
SpecialArticlePriceId (int, NULL, FK to SpecialArticlePrice.Id)
Price (int)
我想为两个 FK 设置删除约束,以防 ArticelPrice 或 SpecialArticlePrice 被删除,Foo 记录也应该被删除。 唯一的合同(在开发者网站上)是,Foo 的记录将只包含一个 FK 关系。
例子:
INSERT INTO Foo (ArticlePrice, SpecialArticlePrice, Price) VALUES (13, NULL, 20.0)
INSERT INTO Foo (ArticlePrice, SpecialArticlePrice, Price) VALUES (NULL, 3, 134.25)
我该如何解决这种情况?
非常感谢。 亲切的问候, 丹尼
【问题讨论】:
-
我怀疑你有循环依赖。我建议你发布表的 ddl。在这些表中插入一些数据,然后说从 articleprice 表中删除一行并显示你期望其他表的输出.然后从 specialarticleprice 中删除一行,并指定您期望其他两个表的输出。然后人们将能够更快地提供帮助。
标签: sql sql-server constraints circular-dependency