SQL

SQL_SEQUENCE(시퀀스), ALTER, RESTART, CYCLE, INCREMENT,

S_pot 2021. 5. 31. 13:21
USE tempdb;
CREATE TABLE testTbl3
(	id int,
	userName nchar(3),
	age int,
	nation nchar(4) DEFAULT '대한민국');
	GO
SELECT * FROM testTbl3;

CREATE SEQUENCE idSEQ
	START WITH 1 -- 시작값
	INCREMENT BY 1; -- 증가값
	GO

INSERT INTO testTbl3 VALUES (NEXT VALUE FOR idSEQ, '지민', 25, DEFAULT);
SELECT * FROM testTbl3;


INSERT INTO testTbl3 VALUES (11, '쯔위', 25, '대만');
ALTER SEQUENCE idSEQ
  RESTART WITH 12; -- 시작값을 다시 설정
INSERT INTO testTbl3 VALUES (NEXT VALUE FOR idSEQ, '미나', 25, '일본');
SELECT * FROM testTbl3;

 

 

CREATE TABLE testTbl4 (id INT);
GO
CREATE SEQUENCE cycleSEQ
START WITH 100
INCREMENT BY 100
MINVALUE 100 -- 최소값
MAXVALUE 300 -- 최대값
CYCLE;	-- 반복설정

GO
INSERT INTO testTbl4 VALUES (NEXT VALUE FOR cycleSEQ);
INSERT INTO testTbl4 VALUES (NEXT VALUE FOR cycleSEQ);
INSERT INTO testTbl4 VALUES (NEXT VALUE FOR cycleSEQ);
INSERT INTO testTbl4 VALUES (NEXT VALUE FOR cycleSEQ);
GO
SELECT * FROM testTbl4;

 

 

 

USE tempdb;
CREATE  SEQUENCE autoSEQ
  START WITH 1
  INCREMENT BY 1; -- 자동으로 1씩 증가
GO
CREATE TABLE testTbl5
(id int DEFAULT(NEXT VALUE FOR autoSEQ), userName nchar(3));
GO
INSERT INTO testTbl5(userName) VALUES ('지민');
INSERT INTO testTbl5(userName) VALUES ('쯔위');
INSERT INTO testTbl5(userName) VALUES ('미나');
GO
SELECT * FROM testTbl5;