(MSSQL) Sequence

DB 2017. 4. 13. 22:17
728x90
728x170

프로젝트를 진행하다보니

프로시저 내에서 씨리얼하게 값을 증가시켜 데이터를 저장해야 하는일이 생겼다

프로시저내에서 전역변수를 선언할수는 없고

테이블을 하나 만들어서 컬럼을 identity 열로 지정하여 가져올까도 했지만 Transaction 이 발생되서 ... GG

코딩상으로는 전역변수 int 하나 만들어놓고 ++ 시키면 되는데

SQL 은 그런 기능이 없나 하다가 찾게된 기능

코딩상에서 전역변수를 사용하는것과 비슷하다.

 

시퀀스 하나 만들고 (SQL 2012 에서만 지원된다.)

-----------------------------------------

CREATE SEQUENCE TESTIDX AS INT
START WITH 1 -- 시작수
INCREMENT BY 1 -- 증가수

-----------------------------------------

 

프로시저내에서 아래와 같이 활용하면 된다.

-----------------------------------------

NEXT VALUE FOR TESTIDX

-----------------------------------------

 

SEQUENCE 는 지정숫자부터 증가하게하거나 초기화 및 띄어넘기가 가능하다

728x90
그리드형

'DB' 카테고리의 다른 글

(MSSQL) select procedure (OPENQUERY)  (0) 2017.04.13
(MSSQL) MAX 값과 join 하기  (0) 2017.04.13
(MSSQL) 트리거 (Trigger)  (0) 2017.04.13
(MSSQL) TOP(N) 데이터 몇건만 가져오기  (0) 2017.04.13
(MSSQL) 오류상태 파악 함수  (0) 2017.04.13
Posted by kjun
,