在涉及表到表的重复密钥更新时插入

时间:2016-02-10 00:16:17

标签: on-duplicate-key

我使用以下脚本填充表格。这个脚本运行得很好:

insert into TSC_Intermediate.dbo.stock 
                (article
                , description
                , article_id
                , client
                , available_stock
                , unit
                , location
                , warehouse)
        select a.article
            , b.art_descr
            , a.article_id
            , a.client
            , a.value_1
            , a.unit_code
            , a.location
            , a.warehouse
        from aststock a
            join
                algarticle b 
            on a.client = b.client 
                and a.article = b.article 
        where a.client = 'cp'

现在我需要做的是继续运行该脚本,但是当存在重复键时让它更新 available_stock ,并在没有时插入新行。关键是(文章,位置,仓库)

我相信我需要使用代码:ON DUPLICATE KEY UPDATE'available_stock'

我错过了一些东西。我在这个主题上可以看到的其他问题只涉及添加1或2行,因此它们指定要更新的值。我很困惑如何使这项工作。此外,当我在该代码的末尾开始键入ON DUPLICATE时,SQL在ON下面给出了一条波浪线,表示我将它放在错误的位置。

1 个答案:

答案 0 :(得分:0)

回答了我自己的问题。由于我使用的是TSQL,我必须使用合并语句。