티스토리 뷰

https://bky1107.tistory.com/17

 

MSSQL 자동 증가값 세팅 및 초기화( IDENTITY)

MSSQL 자동 증가값 세팅 및 초기화( IDENTITY) 기본 사용법 사용 ? 1 2 3 create table test( no int identity(1,1) NOT NULL , --(시작할 숫자값, 증가할 숫자값) ) 인서트시 증가된 값 얻어오기 Identity를 설정..

bky1107.tistory.com

--현재 COMP 테이블에 자동증가값 확인

SELECT IDENT_CURRENT('COMP');


-- [1] 기본 사용법 사용
CREATE TABLE tTEST(
nNO   int IDENTITY(1,1) NOT NULL,
sNAME varchar(50)       NOT NULL,
    CONSTRAINT PK_test PRIMARY KEY CLUSTERED 
    (
  nNO ASC
    )WITH ( PAD_INDEX              = OFF, 
            STATISTICS_NORECOMPUTE = OFF, 
IGNORE_DUP_KEY         = OFF, 
ALLOW_ROW_LOCKS        = ON , 
ALLOW_PAGE_LOCKS       = ON ) ON [PRIMARY]
) ON [PRIMARY]

-- [2] 추가시 증가된 값 얻어오기
INSERT INTO tTEST( sNAME) VALUES( 'James' ) SELECT @@Identity AS 'id'

-- [3] 증가값을 임의로 정하기
-- :Identity를 선언한 경우에는 
--  인서트 시 ,Identity선언 컬럼의 
--  값을 임의로 지정할 수 없다.  

INSERT INTO tTEST( nNO, sNAME ) VALUES( 101, 'James' )   
-- Cannot insert explicit value for identity column 
-- in table 'tTEST' when IDENTITY_INSERT is set to OFF

-- 테이블 생성 시 디폴트 값으로 임의의 번호로 
-- 지정하고 싶거나, 삭제된 번호를 채워 넣고 
-- 싶을 때 유용한 방법이다.


-- [4] 증가값을 수동지정
SET IDENTITY_INSERT tTEST ON;  

-- [5] 신규 데이터 추가 및 확인
INSERT INTO tTEST( nNO, sNAME) VALUES( 100, 'James' ) SELECT @@Identity AS 'id'

-- [6] 증가값을 자동지정
SET IDENTITY_INSERT tTEST OFF; -- 증가값을 자동지정 (보통 우리가 사용하는 설정)

-- [7] 신규 데이터 추가 및 확인
INSERT INTO tTEST( sNAME) VALUES( 'James' ) SELECT @@Identity AS 'id'

-- [8] tTEST테이블의 현재 자동증가 값을 10000으로 설정
DBCC CHECKIDENT ('tTEST', RESEED, 10000); 

-- [9] 신규 데이터 추가 및 확인
INSERT INTO tTEST( sNAME) VALUES( 'James' ) SELECT @@Identity AS 'id'

 

댓글