DBMS/MS SQL

MS SQL - IDENTITY

choi121xx 2013. 5. 3. 16:35


SELECT IDENT_CURRENT  (   '테이블명' )  : 현재 값

SELECT IDENT_INCR  (   '테이블명'  )   : 증가값

SELECT IDENT_SEED  (   '테이블명'  )   :  시작값


--- identity 를 재설정 하기

select * from 테이블이름  

SELECT ident_current  (   '테이블이름'  )   --- 이것으로 확인한 후에

SET IDENTITY_INSERT 테이블이름  on

  insert into 테이블이름 (  tr_num, tr_senddate, tr_id, tr_phone ,  tr_msg )

values ('249000', getdate(), 'hee', '019-394-0043', 'test_db 14:35' ) 

SET IDENTITY_INSERT 테이블이름  off  

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 


SELECT  MIN(IDENTITYCOL) FROM  TB_TEST   : 최소값을 가져옴.

SELECT  Max(IDENTITYCOL) FROM  TB_TEST : 최대값을 가져옴.


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

IDENT_INSERT 옵션의 사용

-[    SET IDENTITY_INSERT table_name ON    ]

- 시스템에 의해 값이 자동 생성되는 것을 중지하고 사용자가 직접 identity 컬럼에 값을 삽입할 수 있도록 한다.

- 시스템 관리자, 데이터베이스 소유자, 테이블 소유자에 의해서만 설정될 수 있다.

- 한사용자는 한번에 하나의 테이블에 대해서만 IDENTITY_INSERT 설정을 가질 수 있다.

- 하나의 테이블은 여러명의 IDENTITY_INSERT 설정을 가지는 사용자를 가질 수 있다.

- identity 값을 재사용하는 효과를 가진다.

===============================================

MS-SQL에서는 필드의 값이 들어 갈때 마다 순차적으로 (1.2.3.4.5.6.....)값이 자동으로 

1씩 증가 되게 하려면 테이블을 생성할때

create TABLE TABLENAME ( 

        idx INT NOT NULL IDENTITY(1,1), 

        tname varchar(20), 

        t_phone varchar(30), 

이런 방식으로 합니다.


idx INT NOT NULL IDENTITY(1,1) 

-필드명 데이터형 not허용여부 값이1씩증가-

 

 

 

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

IDENTITY의 조건에 따르지 않고 특정한 값을 입력

  SET IDENTITY_INSERT [TB_NAME] ON

  입력할 INSERT 구문