将MySQL插入和更新转换为SQL Server触发器

时间:2012-06-18 16:41:28

标签: sql triggers insert

我有一个关系表,其中两个外键指向同一个表。

第一个外键列应始终为外来属性的最小值,第二个外键列应为最大值。

我是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;
}

1 个答案:

答案 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;