作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 MySQL 中,如果指定 ON DUPLICATE KEY UPDATE如果插入的行会导致 UNIQUE 索引或 PRIMARY KEY 中出现重复值,则会执行旧行的 UPDATE。例如,如果列 a 被声明为 UNIQUE 并包含值 1,则以下两个语句具有相同的效果:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
UPDATE table SET c=c+1 WHERE a=1;
我不相信我在 T-SQL 中遇到过类似的事情。 SQL Server 是否提供与 MySQL 的 ON DUPLICATE KEY UPDATE 类似的功能?
最佳答案
令我惊讶的是,此页面上的答案均不包含实际查询的示例,因此您可以:
插入数据然后处理重复的更复杂的示例
MERGE
INTO MyBigDB.dbo.METER_DATA WITH (HOLDLOCK) AS target
USING (SELECT
77748 AS rtu_id
,'12B096876' AS meter_id
,56112 AS meter_reading
,'20150602 00:20:11' AS time_local) AS source
(rtu_id, meter_id, meter_reading, time_local)
ON (target.rtu_id = source.rtu_id
AND target.time_local = source.time_local)
WHEN MATCHED
THEN UPDATE
SET meter_id = '12B096876'
,meter_reading = 56112
WHEN NOT MATCHED
THEN INSERT (rtu_id, meter_id, meter_reading, time_local)
VALUES (77748, '12B096876', 56112, '20150602 00:20:11');
关于mysql - SQL Server 是否提供类似 MySQL 的 ON DUPLICATE KEY UPDATE 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15618539/
我是一名优秀的程序员,十分优秀!