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 중국어 웹사이트의 기타 관련 기사를 참조하세요!