336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

하나의 프로시져로 입력과 수정을 같이 처리하는 경우가 종종 있는데 굳이 Update, Insert를 분기 처리 하지 않고 다음처럼 한번에 처리 할 수 있다. 

update table1 set column1 = @column1 where id = @id
if @@rowcount = 0
begin
insert into table1(column1values(@column1)
end


사실 위 코드는 다음과 같이 처리 하는게 조금 더 좋다.
이런식의 분기 처리는 lock 비교를 적게 하기 때문 조금 더 좋은 퍼포먼스를 보여준다고 한다.

if exists(select * from table1 with(nolock) where id = @id) begin
update table1 set column1 = @column1 where id = @id
end esle begin
insert into table1 (column1) values (@column1)
end


출처 : http://d1342707.tistory.com/category/Development/MSSQL

'Programming > Database' 카테고리의 다른 글

SQL joins  (0) 2017.02.16
How to get time between two dates in sql  (0) 2016.04.27
[MySQL] 부팅시 자동실행 되도록 서비스 등록하기  (0) 2015.02.07
Postgresql 설치 정리  (0) 2015.02.07
[MS-SQL] TOP  (0) 2015.02.07
Posted by 역시인생한방
,