SQL在同一个表中合并和输出

时间:2015-02-10 09:38:32

标签: sql-server sql-server-2008 merge output

我正在合并2个表,我希望如果单元格更新,该字段将被标记为“已更新”我的代码:

 MERGE [ITWORKS].[dbo].[Testine2] te
    USING [ITWORKS].[dbo].[Testinus] bo
    ON te.itemid = bo.itemid
    AND te.itemname <> bo.itemname
    WHEN MATCHED THEN
      UPDATE
      SET te.itemname = bo.itemname
     OUTPUT
        $action
       into  [ITWORKS].[dbo].[Testine2] (busena);
    SELECT * FROM [ITWORKS].[dbo].[Testine2];

结果我得到:

Itemid  Itemname Busena 
100001  TEST      NULL 
NULL    Null      UPADTE

我想要的结果:

Itemid  Itemname Busena
100001  TEST      UPDATE

1 个答案:

答案 0 :(得分:2)

  

我希望如果单元格更新,则该字段将被标记为   “已更新”

没有理由使用输出。只需在更新中设置列值即可。

MERGE [ITWORKS].[dbo].[Testine2] te
    USING [ITWORKS].[dbo].[Testinus] bo
    ON te.itemid = bo.itemid
    AND te.itemname <> bo.itemname
    WHEN MATCHED THEN
      UPDATE
      SET te.itemname = bo.itemname,
          te.Busena = 'UPDATE';

SELECT * FROM [ITWORKS].[dbo].[Testine2];