레코드가 존재하면 업데이트 할 저장 프로 시저를 작성했습니다. 그렇지 않으면 삽입이 수행됩니다. 그것은 다음과 같은 :Insert update SQL에 저장된 proc 파일
update myTable set [email protected], [email protected] where [email protected]
if @@rowcount = 0
insert into myTable (Col1, Col2) values (@col1, @col2)
내 로직이 방법을 쓰고 뒤에 업데이트가 암시가 어디에 절을 사용하여 선택을 수행하는 것입니다 그리고 그것은 0을 반환하는 경우 다음 삽입이 일어날 것이다.
이 방법을 사용하면 선택을 수행 한 다음 반환되는 행 수에 따라 업데이트 또는 삽입을 수행 할 수 있습니다. 이것은 비효율적 인 것으로 생각했는데, 업데이트를 수행하면 2 개의 선택 (첫 번째 명시 적 선택 호출과 두 번째 암시 적 업데이트가 발생 함)이 발생하기 때문입니다. proc이 삽입을하면 효율성에 차이가 없다.
내 논리가 여기에 들리는가요? 삽입 및 업데이트를 저장 프로 시저에 결합하는 방법입니까?
글쎄, 적어도 한 가지 질문에 대답했다고 생각합니다. 그리고 질문에있는 코드가 이미 저에게 맞았 기 때문에 코드를 추가하지 않았습니다. 트랜잭션에 넣을 수도 있지만 업데이트를 위해 격리 수준을 고려하지 않았습니다. 귀하의 답변에 그것을 지적 주셔서 감사합니다! – binOr