티스토리 툴바



2012/01/12 20:40

프로시저 BEGIN TRAN. 한 프로시저에 insert문이 2개, update문이 1개

크리에이티브 커먼즈 라이선스
Creative Commons License

엔젠은 ms-sql2005 입니다.
한 프로시저에 insert문이 2개, update문이 1개 있습니다 

--------------------아래는 프로시저 구성---------------
Insert Into table1 (col1, col2, col3)

select col1, col2, col3

from ~~~~~~ 

update table2
set a.col1 = b.col1, a.col2 = b.col2, a.col3 = b.col3

from ~~~~~~ 

insert into table2 (col1, col2, col3)
select col1, col2, col3

from ~~~~~~
-------------------------------------------------------

 이럴때 BEGIN TRAN, ROLLBACK TRAN, COMMIT TRAN 등으로 위의 구문이 모두 성공해야 COMMIT 처리 하고, 하나라도 에러가 난다면 다  ROLLBACK 시키고 싶습니다.

이럴때

2005 시면 BEGIN TRY  구문으로 묶어서 사용하시면 될꺼같은데요 BEGIN TRY 구문 내부에 BEGIN TRAN 으로 구성

BEGIN TRY

   BEGIN TRAN

      INSERT

      UPDATE

   COMMIT TRAN

END TRY

BEGIN CATCH

   ROLLBACK TRAN

END CATCH

저작자 표시 비영리 변경 금지
Trackback 0 Comment 0

Trackback : http://imdev.tistory.com/trackback/153 관련글 쓰기