집 >데이터 베이스 >MySQL 튜토리얼 >MySQL의 ON DUPLICATE KEY UPDATE와 동일한 SQL Server가 있습니까?
SQL Server는 MySQL의 ON DUPLICATE KEY UPDATE와 유사한 기능을 제공합니까?
MySQL에서 ON DUPLICATE KEY UPDATE를 사용하면 자동 업데이트가 가능합니다. 삽입으로 인해 고유 인덱스나 기본 키에 값이 중복되는 경우 행 SQL Server에서 이 기능에 가장 가까운 것은 MERGE 문입니다.
MERGE를 사용하여 업데이트 또는 삽입
MERGE 문은 INSERT, UPDATE, 및 DELETE 문을 단일 작업으로 통합합니다. 다음 용도로 사용할 수 있습니다.
예
다음의 경우 테이블에 행을 삽입하려고 시도하는 다음 쿼리를 고려해 보세요. 행이 아직 존재하지 않습니다.
INSERT INTO MyTable (Id, Name) VALUES (1, 'John Doe')
ID가 1인 행이 이미 존재하는 경우 기본 키 위반으로 인해 이 쿼리가 실패합니다. 그러나 MERGE를 사용하여 이 시나리오를 처리할 수 있습니다.
MERGE INTO MyTable WITH (HOLDLOCK) AS target USING (SELECT 1 AS Id, 'John Doe' AS Name) AS source (Id, Name) ON (target.Id = source.Id) WHEN MATCHED THEN UPDATE SET Name = source.Name WHEN NOT MATCHED THEN INSERT (Id, Name) VALUES (source.Id, source.Name);
이 예에서 MERGE 문은 다음 작업을 수행합니다.
WITH(HOLDLOCK) 절은 대상 테이블이 작업 중에 잠기는 것을 보장합니다. 동시 업데이트로 인해 데이터 일관성 문제가 발생하지 않도록 방지하는 작업입니다.
위 내용은 MySQL의 ON DUPLICATE KEY UPDATE와 동일한 SQL Server가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!