SQL programming 
자동 증가되는 컬럼 : IDENTITY 속성

SQL Server에서 숫자 자동 증가 기능으로 IDENTITY 컬럼 속성을 들 수 있다. 즉, int와 같은 숫자형 컬럼 타입의 경우, IDENTITY 속성을 지정하면 해당 컬럼에 자동으로 증가되는 숫자들이 들어가게 된다. 하지만 IDENTITY 컬럼 속성을 VARCHAR나 CHAR와 같은 문자형 컬럼에 적용할 수는 없다. (이에 대한 Workaround로서 아래를 참조)<br> 유일한 ROW를 만들기 위해 컬럼을 IDENTITY로 쓸 것인가, GUID 타입을 쓸 것인가는 약간의 장단점이 있다. int타입의 IDENTITY를 쓸 경우, SELECT시 행을 순차적으로 쉽게 볼 수 있다는 장점이 있으나, int의 최대값을 지나면 문제가 될 수 있다 (이런 경우는 수학적으로 거의 드물다. 하지만 어쨌든 한계는 있다.) . GUID는 반면 Unique한 값을 보장받게 되나, 컬럼 사이즈가 더 크고, Key로 사용될 경우, int보다는 느릴 수 있다 (실무적으로 큰 차이가 없는 경우가 대부분이다).





자동 증가되는 VARCHAR 컬럼

SQL Server에서 문자형 컬럼에 IDENTITY 컬럼 속성을 지정할 수 없다. 하지만, 문자형 컬럼을 자동 증가 시킬 필요가 있는 경우에는 Computed 컬럼을 사용할 수 있다. 아래 예처럼 먼저 int 타입의 IDENTITY 컬럼을 설정하고, 문자형 계산(Computed) 컬럼을 CONVERT()함수를 써서 추가한다. PRIMARY KEY는 물론 id 컬럼에 줄 수도 있고, str_id에 줄 수도 있다. 아래 CONVERT() 함수는 숫자형 id 컬럼값을 문자형 varchar로 변경하여 새로운 컬럼값을 만들어 준다.

예제





본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.