일련번호 생성에 대해서 질문있습니다. 0 1 1,001

by 상똥이 [SQLServer] [2020.05.11 18:00:33]


안녕하세요.

현재 데이터를 넣을때마다 접수번호를 생성해야되는데 뭔가 막막합니다.

형식은 ABC-2019-0001 이런식으로 증가하는 접수번호를 만들어야 됩니다.

여기서 문제가 시퀀스를 사용해서 할 수 있는데 예를들어 2020년이 되면 

ABC-2020-0001이렇게 다시 초기화되서 1씩 증가시켜야 됩니다.

어떤식으로 해야될지 막막합니다.

혹시 답변 해주시면 정말 감사하겠습니다. 

by 마농 [2020.05.12 10:16:38]

오라클의 경우 시퀀스가 별도 객체로 되어 있어 이를 읽어와 가공하여 처리가 가능한데.
MSSQL의 경우엔 테이블 자체에 자동증가 컬럼이 사용되어 가공이 안될 듯 한데요.
오라클의 경우에 매년 시퀀스를 초기화 하여 사용하면 될 듯 하긴 한데.
만약 년도 조건 외에 앞쪽 ABC 부분도 여러 값이 존재하여 구별하여 1부터 시작해야 한다면?
구분값마다 시퀀스가 별도로 있어야 하겠네요?
시퀀스나 자동증가 컬럼으로는 구현이 쉽지 않을 듯 합니다.
기타 방법으로는
MAX 값 읽어 와서 +1 하는 방법이 있습니다.
별도의 시퀀스 용도의 테이블을 만들어 사용하는 방안도 생각해 볼 수 있습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입