MyTable (MyTableId NVARCHAR (MAX) PRIMARY KEY, NumberOfInserts INTEGER) 테이블 구조로 가정하십시오.SQL Server 2016의 INSERT 또는 UPDATE를위한 안전한 솔루션
기존 레코드의 카운터를 증가 시키거나 NumberOfInserts에 0 값이없는 경우 새 레코드를 삽입해야하는 경우가 있습니다. 기본적으로
:
IF (MyTableId exists)
run UPDATE command
ELSE
run INSERT command
내 관심사는 경쟁 조건으로 인해 데이터가 손실되는 등
이 쓸 수있는 안전한 방법은 무엇입니까?
가능한 경우 100 % 정확해야하며 필요한 경우 속도를 희생 시키려합니다.
MERGE 명령을 사용하면 업데이트, 삽입 및 삭제를 한꺼번에 수행 할 수 있습니다. 관측의 몇 가지, 제발 칼럼 '키'SQL 서버에서 예약어를 호출하지 마십시오. 또한 기본 키로 사용하고 있습니까? 그렇다면 NVARCHAR (MAX)는 정말 나쁜 생각입니다. –