加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MsSql > 正文

sql – 使用select语句合并插入

发布时间:2020-05-27 21:47:41 所属栏目:MsSql 来源:互联网
导读:这对我有用 MERGE Table1 AS tgt USING (SELECT TOP 1 * FROM Table2, (SELECT itmid FROM Table3 WHERE id=@id) as a WHERE id = @id) AS srcON (tgt.id = src.id) WHEN MATCHED THEN UPDATE SET

这对我有用

MERGE Table1 AS tgt
 USING (SELECT TOP 1 * FROM Table2,(SELECT itmid FROM Table3 WHERE id=@id) as a
        WHERE id = @id) AS src
ON (tgt.id = src.id)
            WHEN MATCHED THEN UPDATE SET qty = qty + @qty
            WHEN NOT MATCHED THEN
                INSERT itmid
                VALUES itmid;

但是当我这样改变它不工作,显示最近选择附近的错误

MERGE Table1 AS tgt
 USING (SELECT TOP 1 * FROM Table2
        WHERE id = @id) AS src
ON (tgt.id = src.id)
            WHEN MATCHED THEN UPDATE SET qty = qty + @qty
            WHEN NOT MATCHED THEN
                INSERT itmid
                SELECT itmid FROM Table3 WHERE id=@id;

解决方法

根据 MSDN docs
<merge_not_matched>::=
{
    INSERT [ ( column_list ) ] 
        { VALUES ( values_list )
        | DEFAULT VALUES }
}

来自SELECT的INSERT语法如下所示:

WHEN NOT MATCHED THEN
            INSERT itmid SELECT itmid FROM Table3 WHERE id=@id;

不允许!

我会尝试解决你的问题做另一个与表3的合并.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读