본문 바로가기
프로그래밍/DB & Redis

시퀀스

by 뽀도 2016. 7. 20.

* 시퀀스 (SEQUENCE)

 

- 테이블이나 컬럼에 상관없이 데이터베이스 상에 별도 존재하는 오브젝트.

- 오름차순, 혹은 내림차순으로 순차적인 값을 리턴한다.

 

Identity속성과 차이점

 Identity : 한 테이블 내의 특정 컬럼에 종속 , Row가 insert가 될 때 생성

 Sequence : 공용으로 사용 가능 - 테이블에 독립적, application이 특정 함수를 호출하여 insert와 별개로 다음 sequence 값을 가져 올 수 있다.

 

sql의 sequence는 그 독립적인 특성 때문에 application이 next value를 얻어 여러 테이블들 혹은 여러 컬럼들에 동시에 그 값을 사용할 수 있다.


이는 application 개발자에게 보다 많은 Control과 유연성을 준다.

 

 

* 생성 CREATE SEQUENCE

 

CREATE SEQUENCE dbo.Seq1

  START WITH 1
  INCREMENT BY 1
  NO MINVALUE
  NO MAXVALUE
  CACHE
  NO CYCLE
GO

-- 1부터 1씩 증가하는 seq 생성


CREATE SEQUENCE dbo.Seq10
    START WITH 10
    INCREMENT BY 10
    NO MINVALUE
    NO MAXVALUE
    CACHE
    NO CYCLE
GO

-- 10부터 10씩 증가하는 seq 생성

 

* 조회 select NEXT VALUE FOR DBO.Seq1, NEXT Value for dbo.Seq10;

 

1회차 조회

 

 

2회차 조회

 

- 결과를 보면 조회함으로써 값이 자동 증가한 것을 알 수 있다.

 

 

https://msdn.microsoft.com/ko-kr/library/ff878091.aspx

 

https://msdn.microsoft.com/ko-kr/library/ff878370(v=SQL.110).aspx

 

반응형

댓글