티스토리 뷰

728x90

IDNEITTY는 순차적으로 증가는 숫자값으로 보통 시퀀스를 생성할 때 많이 사용된다.

IDENTITY 라고만 명시하면 1부터 시작하여 1씩 증가하는 기본적인 값이고

IDENTITY(10,10) 이런식으로 안에 값을 지정하면 시작값, 증가값으로 설정이 가능하다.

즉, 10부터 시작하여 10씩 증가하게 된다.

--########################
-- IDENTITY
--########################
/*
	DROP TABLE dbo.UserTbl;
*/
CREATE TABLE dbo.UserTbl (
	USERID INT IDENTITY(10,10),	--10부터 시작하여 10씩 증가
	NAME VARCHAR(10),
	AGE INT,
	ADDR VARCHAR(20)
) 
GO

CREATE TABLE dbo.UserIdentity (
	IDEN INT
)
GO

INSERT INTO UserTbl 
	(NAME, AGE, ADDR)
OUTPUT inserted.USERID
VALUES ('Ken', 20, 'Seattle');

INSERT INTO UserTbl 
	(NAME, AGE, ADDR)
OUTPUT inserted.USERID
VALUES ('Terri', 21, 'Portland');

보통은 순차적으로 증가하는 시퀀스 값으로 사용하기 때문에 해당 값을 리턴받아서 다시 사용하는 경우가 많다.

이 경우에는 @@IDENTITY라는 구문을 사용한다.

--########################
-- REUSING IDENTITY VALUE
--########################
BEGIN TRAN
	BEGIN TRY
		INSERT INTO UserTbl (NAME, AGE, ADDR)		
		VALUES ('Roberto', '20', 'North Bend')
		
		INSERT INTO UserIdentity
		VALUES (@@IDENTITY)
	END TRY
	BEGIN CATCH
		IF @@TRANCOUNT > 0
			ROLLBACK TRANSACTION;
	END CATCH

	IF @@TRANCOUNT > 0
		COMMIT TRAN
GO
728x90
LIST

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

[MS SQL SERVER] SYNONYM  (0) 2021.10.29
[MS SQL SERVER] SEQUENCE  (0) 2021.10.28
[MS SQL SERVER] PIVOT  (0) 2021.10.28
[MS SQL SERVER] MERGE  (0) 2021.10.28
[MS SQL SERVER] INSERT - OUTPUT 구문  (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
글 보관함