Oracle 기능 중 가장 부러웠던 기능이 바로 Sequence!!

 

이제 MS-SQL 2012에서부터 제공이 된다.

 

얼마나 기다렸던가..

 

매번 테이블을 만들어서 체크하고 짜증이 심하게 났었는데...

 

그냥 행복하다.

 

만드는건 다음과 같고

 

create sequence barcode_seqas int
START with 1
increment by 1

 

조회는 select next value for barcode_seq 이런 형식으로 Oracle과 거의 유사하다.

 

아니 동일하다 봐도 무관 할 듯?

 

여기까지만 알아도 대충 유용하게 쓸 수 있지만

 

초기화가 필요 할 경우가 있다.

 

Index 성격의 프로그램을 만들 경우나 Sequence 적인 프로그램을 짤 경우

 

alter sequence barcode_seq
restart with 1

 

위 코드가 초기화 코드이다.

 

MSDN에 가면 괜찮게 정리가 되어 있으니 보면 유용 할 듯 하다.

[SQL] SEQUENCE ORACLE/SQL 2012. 3. 29. 17:57

유일한 값을 생성한다. 증가 내용이나 이런건 물론 사용자가 지정 할 수가 있다.

PRIMARY KEY와 관련되는 경우 종종 사용하는 편인데.. 난 쓸 곳이 없어서 잘 안쓰는 듯..

다음은 예제이다.

CREATE SEQUENCE seq_no

START WITH 1

INCREMENT BY 1

MAXVALUE 1000

위와 같이 하면 기본적으로 생성이 된다. 시작과 증가 정도, 맥스 값을 지정한다.

NEXTVAL을 이용하면 하나씩 증가 하여 자동으로 입력이 가능하고 CURRVAL을 이용하면 현재 시퀀스의 값을 알 수가 있다.

또한 NOMAXVALUE나 NOMINVALUE를 지정하면 제한이 풀리며 CYCLE을 이용할 경우 최대 값을 넘기면 처음부터 순환하게 되어있다. NOCYCLE은 당연히 그 반대이다.

수정할 경우 ALTER를 이용하면 된다. 삭제시에는 DROP을 이용한다.