1. REPLICATE, FORMAT 함수 이용하여 채번로직 구현
prepix + FORMAT(last_sno,REPLICATE('0',serial_len))
2. 적용예
1) 셋업 테이블을 생성
2) last_sno 값을 업데이트 시킴
3) last_sno 값에 의해 사용할 autono 표시
4) 일련번호 형태 변경이 필요하면 Table의 자동계산 컬럼을 변경하면 됩니다.
[autono] AS ((([prepix]+case [datetype] when 'YYMM' then CONVERT([char](4),getdate(),(12)) else '' end)+ltrim(isnull([delimiter],'')))+format([last_sno],replicate('0',[serial_len]))),
결과) H2111-0000
실행 쿼리 )
CREATE TABLE [dbo].[auto_no_setup](
[table_name] [nvarchar](50) NOT NULL,
[prepix] [nvarchar](20) NULL,
[serial_len] [int] NULL,
[last_sno] [int] NULL,
[use_yn] [char](1) NULL,
[autono] AS ((([prepix]+case [datetype] when 'YYMM' then CONVERT([char](4),getdate(),(12)) else '' end)+ltrim(isnull([delimiter],'')))+format([last_sno],replicate('0',[serial_len]))),
[datetype] [nvarchar](20) NULL,
[last_dateval] [nvarchar](20) NULL,
[delimiter] [char](1) NULL,
CONSTRAINT [PK_auto_no_setup] PRIMARY KEY CLUSTERED
(
[table_name] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
go
INSERT INTO auto_no_setup(table_name, prepix, serial_len, last_sno, use_yn, datetype, last_dateval, delimiter ) VALUES('TBL01', 'H', 4, 0, 1, 'YYMM', '2111','-')
감사합니다.