NOZ
285
2021-09-17 13:34:02 작성 2021-09-17 13:57:00 수정됨
2
84

SQL SERVER 에 BEGIN TRAN 에 END 구문 같은 건 아예 없나요?


안녕하세요.


저는 원래 Oracle 을 공부하고 입사했는데, 현재 Oracle 외에도 SQL SERVER(MSSql)을 사용하는 프로젝트가 있습니다.


PL/SQL 문법에서, Oracle 의 경우에는


DECLARE (선언부)

BEGIN (실행부)

END

/

;


이런 식으로 실행부 종료 구문이 END 로 명시가 되어야 합니다만,


SQL SERVER 에는 BEGIN TRAN 으로 시작해서, END 구문이 따로 없더군요.

(https://docs.microsoft.com/ko-kr/sql/t-sql/language-elements/begin-transaction-transact-sql?view=sql-server-ver15)

이렇게 해도 돌아간다는 걸 알고, 실제 확인도 했습니다만, 이상하게 영 찜찜한 기분을 지울 수 없습니다.

심지어 BEGIN TRAN 아래에 돌아가는 SQL 문이 여러 개라서 더욱 제대로 클로징이 된건지 애매한 기분이 남아 있습니다.


SQL SERVER 에 END 구문 비스무리한 건 전혀 없는 건가요?


SQL SERVER 문서를 뒤져봐도 딱히 안 보이고,

시험삼아 실제 END 구문을 써봤는데 그런 거 없다고 에러를 뱉더군요.


COMMIT 구문이 있는 건 아는데, Mybatis 에서 명시를 안해도 commit 되더라구요...

GO 나 COMMIT 을 END 구문처럼 쓰기엔 의미도 쓰임새도 다르고...


또 혹시 저같은 기분을 느끼는 분이 계시는지 모르겠네요.

0
  • 답변 2

  • 개나소나고생
    7k
    2021-09-17 14:18:40

    전혀요.

    BEGIN TRAN ~ BEGIN END

    BEGIN

    END 

    다 있습니다.

  • NOZ
    285
    2021-09-17 14:23:05 작성 2021-09-17 14:23:42 수정됨

    개나소나고생

    네 , 찾았습니다.

    제가 좀 더 찾아볼 걸 성급하게 글을 올려버렸네요.

    https://docs.microsoft.com/ko-kr/sql/t-sql/language-elements/begin-end-transact-sql?view=sql-server-ver15


    어찌보면 똑같은건데 키워드가 다르다보니, 전혀 엉뚱하게 검색하고 있었네요.

  • 로그인을 하시면 답변을 등록할 수 있습니다.