728x90
프로젝트를 진행하다보니
프로시저 내에서 씨리얼하게 값을 증가시켜 데이터를 저장해야 하는일이 생겼다
프로시저내에서 전역변수를 선언할수는 없고
테이블을 하나 만들어서 컬럼을 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 |