[MSSQL]Insert실행시 자동증가되는 IDENTITY값 바로 가져오기 출처: https://yamea-guide.tistory.com/198 [기타치는 개발자의 야매 가이드]

seung-jae hwang·2019년 5월 16일
0

MSSQL

목록 보기
2/6

From : https://yamea-guide.tistory.com/198

nsert를 실행시키고 자동으로 증가 되도록 해놓은 PK값이 바로 필요한 경우가 있다.

A테이블에 값이 입력되면 그 값에 종속되는 B테이블의 값을 넣어야 하는데

PK를 알아오기 위해서 insert후 다시 select 하더라도 한 컨트롤러에서 해결하기란 힘들다.

게다가 해당 pk값을 모르기 때문에 다시 select 하는 것도 문제.

해결 방법

1
2
SELECT @@IDENTITY

cs

이걸 사용 하는 것 이다.

1
2
3
4
5
6
7
8
9
10
11
12
13

INSERT INTO
T_AUTH
(
VAL1
,VAL2
,VAL3)
values(
#{VAL1}
,#{VAL2}
,#{VAL3})

SELECT @@IDENTITY AS SEQ
cs

이런식으로 사용 하면

SEQ라는 컬럼에 자동증가된 값을 반환 한다

참고로 MYBAITIS에서는

INSERT가 아니라 SELECT로 감싸줘야 정상 작동 한다

예를 들어

1
2
3
4
5
6
7
8
9
10
11
12
13
14
INSERT INTO T_AUTH ( VAL1 ,VAL2 ,VAL3) values( #{VAL1} ,#{VAL2} ,#{VAL3}) SELECT @@IDENTITY AS SEQ Colored by Color Scripter cs

이런식으로 만들면 VO SEQ에 해당 값이 담겨서 리턴 된다.

출처: https://yamea-guide.tistory.com/198 [기타치는 개발자의 야매 가이드]

0개의 댓글