我有一个关系表,其中两个外键指向同一个表。
第一个外键列应始终为外来属性的最小值,第二个外键列应为最大值。
我是SQL Server的新手,我读过应该使用inserted
临时表的插件,但是如何设置最小和最大关系子节点不使用循环迭代{{1} }条目。
表格
inserted
MySql触发器
table Child
{
int id;
int value;
}
table Parent
{
int id;
// foreign-keys A enforce minimum child value!
int childA;
int childB;
}
答案 0 :(得分:0)
使用条件选择查询解决它。 不那么优雅,特别是如果需要设置许多属性但它可以工作。
INSERT INTO Parent (childA_ID, childB_ID)
SELECT CASE WHEN childA.value <= childB.value THEN childA.ID ELSE childB.ID END AS childA_ID,
CASE WHEN childA.value > childB.value THEN childA.ID ELSE childB.ID END AS childB_ID
FROM inserted AS p,
Child AS childA,
Child AS childB,
WHERE childA.ID = p.childA
AND childB.ID = p.childB;