【发布时间】:2020-02-25 16:17:09
【问题描述】:
如果数据不存在,我创建了一个插入语句来将数据添加到 DB。
INSERT INTO SampleList(SampleId, Type, Description)
SELECT nr.SampleId, nr.Type, nr.Description
FROM (VALUES (1,'A','AA'),
(2,'B','BB'),
(3,'C','CC'),
(4,'D','DD')
) AS nr (SampleId,Type,Description)
LEFT JOIN SampleList cr ON cr.SampleId = nr.SampleId
WHERE cr.SampleId IS NULL
但如果数据库中存在数据,我也想更新行。
你能帮我做吗?
【问题讨论】:
-
这叫做
MERGE -
试过这个。但无法正常工作
-
你能告诉我们你在这个问题上的尝试吗? “不起作用”是什么意思?
-
MERGE SampleList cr USING (SELECT nr.SampleId, nr.Type, nr.Description FROM (VALUES (1,'A','AA'), (2,'B','BB' ), (3,'C','CC'), (4,'D','DD') ) as nr (SampleId, Type, Description)) ON (cr.SampleId=nr.SampleId) 匹配后更新SET cr.Type=nr.Type, cr.Description=nr.Description 当目标不匹配时插入(SampleId、Type、Description)值(nr.SampleId、nr.Type、nr.Description)
-
上面的命令说语法错误:关键字'ON'附近的语法不正确。
标签: sql database sql-server-2012 automation