데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요.
ASP.NET에서 데이터를 INSERT하는 SP를 호출하는 부분이 있습니다.
기존에는 SP내에서 트랜잭션으로 묶어 COMMIT/ROLLBACK 처리를 하였습니다.
하지만 COMMIT갯수와 TRAN갯수가 일치하지 않다는 오류가 빈번히 발생하였고,
BEGIN TRAN / TRY 및 COMIMT/ROLLBACK을 SP내에서 제거 하였습니다.
SP내에서 제거 후 ASP.NET단에서
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew))
{
int rows = db.ExecuteNonQuery(dbCommand);
scope.Complete();
rtnMessage = (string)db.GetParameterValue(dbCommand, "@OUTMSG");
}
위와같이 TransactionScope 을 사용하여 트랜잭션으로 묶었습니다만..
SP 내에서
SET @OUTMSG = '퇴직예정자이므로 근태를 입력할 수 없습니다.'
RETURN
와 같이 리턴을 시키면... ASP.NET단에서 ROLLBACK처리를 못하는것 같습니다.....
결론적으로 ASP.NET단에서 SP호출 후 COMMIT/ROLLBACK 을 관리하고 싶은데
어떻게쓰면 좋을까요?