티스토리 뷰

728x90

SEQUENCE 구문은 IDENTITY 구문과 거의 비슷하다.

아래처럼 시퀀스명, 시작값, 증가값을 지정하여 시퀀스를 생성할 수 있다.

CREATE SEQUENCE USERID_COUNTER
	AS INT
	START WITH 1
	INCREMENT BY 2

IDENTITY는 테이블에 입력할 때만 동작하지만 SEQUENCE는 생성해 놓으면 아무때나 SELECT가 가능하다.

SELECT할 때마다 정해진 증가값만큼 계산되어 출력된다.

SELECT NEXT VALUE FOR USERID_COUNTER

테이블 INSERT하는 구문에서도 아래처럼 사용이 가능하다.

CREATE TABLE UserTbl (
	USERID INT,
	NAME VARCHAR(10),
	AGE INT,
	ADDR VARCHAR(20)
) 
GO

INSERT INTO UserTbl (USERID, NAME, AGE, ADDR)
VALUES (NEXT VALUE FOR dbo.USERID_COUNTER, 'Ken', '20', 'Seattle');

INSERT INTO UserTbl (USERID, NAME, AGE, ADDR)
VALUES (NEXT VALUE FOR dbo.USERID_COUNTER,'Terri', '21', 'Portland');

위와 같은 특징 때문에 IDENTITY와 가장 다른점이 발생하는데 바로 SEQUENCE를 공유할 수 있다는 점이다.

UserTbl 테이블에 입력할 때에도 USERID_COUNTER 시퀀스를 사용하고,

UserTbl2 테이블에 입력할 때에도 동일한 USERID_COUNTER 시퀀스를 사용할 수 있다.

이 때에도 테이블 구별없이 시퀀스는 계속 동작하여 증가한 값을 입력하게 된다.

CREATE TABLE UserTbl2 (
	USERID INT DEFAULT(NEXT VALUE FOR dbo.USERID_COUNTER),
	NAME VARCHAR(10),
	AGE INT,
	ADDR VARCHAR(20)
) 
GO

INSERT INTO UserTbl2 (NAME, AGE, ADDR)
VALUES ('Terri', '21', 'Portland');

 

728x90
LIST

'Programming > MS SQL Server' 카테고리의 다른 글

[MS SQL SERVER] PRIMARY KEY, FOREIGN KEY, CHECK, UNIQUE, NOT NULL  (0) 2021.10.29
[MS SQL SERVER] SYNONYM  (0) 2021.10.29
[MS SQL SERVER] IDENTITY()  (0) 2021.10.28
[MS SQL SERVER] PIVOT  (0) 2021.10.28
[MS SQL SERVER] MERGE  (0) 2021.10.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함