sql – 使用select语句合并插入
发布时间:2020-12-12 08:38:39 所属栏目: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 qty = qty + @qty WHEN NOT MATCHED THEN INSERT itmid VALUES
这对我有用
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的合并. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |