Database/SQL Server

SQL Server - 순서 만들기 시퀀스 Sequence object

청렴결백한 만능 재주꾼 2020. 12. 23. 02:16
반응형

 

SYNTAX : 

CREATE SEQUENCE [schema_name . ] sequence_name  
    [ AS [ built_in_integer_type | user-defined_integer_type ] ]  
    [ START WITH <constant> ]  
    [ INCREMENT BY <constant> ]  
    [ { MINVALUE [ <constant> ] } | { NO MINVALUE } ]  
    [ { MAXVALUE [ <constant> ] } | { NO MAXVALUE } ]  
    [ CYCLE | { NO CYCLE } ]  
    [ { CACHE [ <constant> ] } | { NO CACHE } ]  
    [ ; ]  
Property Description
데이터 타입 AS 뒤에 들어갈 데이터 타입 종류- 내장 정수 타입(tinyint, smallint, int, bigint, deciaml etc...) 또는 사용자 지정 정수 타입. 기본값은 bigint.
START WITH 시퀀스의 첫 번째 값 지정
INCREMENT BY 증가 또는 감소 할 값. 음수를 넣으면 값이 감소 됨. 
만약 1을 넣으면 1씩 증가 -1을 넣으면 1씩 감소
MINVALUE 시퀀스에서 최소 값 지정
MAXVALUE 시퀀스에서 최대 값 지정
CYCLE 한바퀴 다시 돌 건지 시퀀스를 끝낼건지 지정.
만약 값이 증가하는 것으로 지정해놓고 start with값에서 maxvalue에 도달했을 때 다시 start with값으로 돌아간다면 CYCLE, 거기서 순서를 끝낸다면 NO CYCLE
CACHE 성능을 위해 시퀀스 값을 캐시함. 기본 값은 CACHE. 캐쉬 사이즈를 지정 가능. 캐시메모리를 쓰지 않겠다하면 NO CACHE.

 

 

Sequence 와 Identity의 차이

Identity Sequence
테이블에 종속되어 있다. 종속되어있지 않고 독립적이다.
다음 identity 값이 발생하려면 새로운 row가 테이블에 삽입되어야 한다. NEXT VALUE FOR 를 쓰면 다음 sequence value를 확인 할 수 있다.
최대값 지정을 할 수 없다.  최대 값을 지정할 수 있다.
재시작을 할 수 없다. CYCLE 옵션으로 재시작 가능하다. 

 

반응형