返回首页

您好,
我有一个以上的表,需要在单一的外键,基地甚至赔率上解决......或X MOD Y型
例如如果table_referenced的有x然后
如果x MOD 3 = 0
然后加载来自table1的记录
如果x MOD 3 = 1
然后加载记录从表2 { BR}如果x MOD 3 = 2
,然后从table3

NBSP载入记录;
,但喜欢这种方式
创建表table_referenced

ref_field"table1的诠释引用( t1id),表2(t2id),表3(t3id)


我知道有没有这样的命令,但我想要的东西,做同样的事情......

回答

评论会员:游客 时间:2012/02/06
迈赫迪吴拉姆:你的设计很糟糕,但你可以使用像这样:codeprelang="SQL"spanclass="code-keyword"select/span*spanclass="code-keyword"from/spantable1spanclass="code-keyword"where/spanidspanclass="code-keyword"in/span(spanclass="code-keyword"select/spanref_fieldspanclass="code-keyword"from/spantable_referencedspanclass="code-keyword"where/spanref_field%spanclass="code-digit"3/span=spanclass="code-digit"0/span)spanclass="code-keyword"Union/spanspanclass="code-keyword"select/span*spanclass="code-keyword"from/spantable2spanclass="code-keyword"where/spanidspanclass="code-keyword"in/span(spanclass="code-keyword"select/spanref_fieldspanclass="code-keyword"from/spantable_referencedspanclass="code-keyword"where/spanref_field%spanclass="code-digit"3/span=spanclass="code-digit"1/span)spanclass="code-keyword"Union/spanspanclass="code-keyword"select/span*spanclass="code-keyword"from/spantable3spanclass="code-keyword"where/spanidspanclass="code-keyword"in/span(spanclass="code-keyword"select/spanref_fieldspanclass="code-keyword"from/spantable_referencedspanclass="code-keyword"where/spanref_field%spanclass="code-digit"3/span=spanclass="code-digit"2/span)/pre/code
阿米尔Mahfoozi
评论会员:游客 时间:2012/02/06
喜psychic6000,正如你所提到的,有没有这样的命令,但有一个小窍门,以实现这种关系。您可以添加树计算领域,除了X和其坚持的属性设置为ON,使得它可以定义为外键。其计算公式是这样的:{C}整个表看起来像这样:codeprelang="SQL"spanclass="code-keyword"CREATE/spanspanclass="code-keyword"TABLE/span[test].[main]( [id][spanclass="code-keyword"int/span]spanclass="code-keyword"IDENTITY/span(spanclass="code-digit"1/span,spanclass="code-digit"1/span)spanclass="code-keyword"NOT/spanspanclass="code-keyword"NULL/span, [value][spanclass="code-keyword"int/span]spanclass="code-keyword"NOT/spanspanclass="code-keyword"NULL/span, [value_mirror1]spanclass="code-keyword"AS/span(spanclass="code-keyword"case/spanspanclass="code-keyword"when/span[value]%(spanclass="code-digit"3/span)=(spanclass="code-digit"0/span)spanclass="code-keyword"then/span[value]spanclass="code-keyword"end/span)PERSISTED, [value_mirror2]spanclass="code-keyword"AS/span(spanclass="code-keyword"case/spanspanclass="code-keyword"when/span[value]%(spanclass="code-digit"3/span)=(spanclass="code-digit"1/span)spanclass="code-keyword"then/span[value]spanclass="code-keyword"end/span)PERSISTED, [value_mirror3]spanclass="code-keyword"AS/span(spanclass="code-keyword"case/spanspanclass="code-keyword"when/span[value]%(spanclass="code-digit"3/span)=(spanclass="code-digit"2/span)spanclass="code-keyword"then/span[value]spanclass="code-keyword"end/span)PERSISTED)spanclass="code-keyword"ON/span[spanclass="code-keyword"PRIMARY/span]/pre/code这之后,您可以定义关系之间value_mirror1和table1的ID等...这给你一个可以接受的程度上的一致性。希望这会有所帮助。编辑:如果你ARITHABORT的错误,当编辑你的表:您在SSMS的数据库右键选择第一套算术中止已启用为True,在选项的属性: