MS-SQL 체크디지트 생성 함수-retrun 1
ALTER FUNCTION [dbo].[to_checkdigit] (@v_pos_code varchar(20))
RETURNS varchar(20)
as
begin
declare @v_checkdigit varchar(20),
@v_idx integer,
@v_sum integer,
@v_mok integer,
@nLoop integer
select @v_idx = 0, @v_sum = 0, @v_mok = 0, @nLoop = 0
if charindex('.', @v_pos_code) > 0 RETURN @v_checkdigit
if IsNumeric(@v_pos_code) = 0 RETURN @v_checkdigit
if ( Len(@v_pos_code) % 2 = 1 ) set @v_pos_code = '0' + @v_pos_code;
While @nLoop < Len(@v_pos_code)
begin
select @nLoop = @nLoop + 1
if (@nLoop % 2) = 0
select @v_sum = @v_sum + (cast( substring(@v_pos_code,@nLoop,1) as integer ) * 3)
else
select @v_sum = @v_sum + (cast( substring(@v_pos_code,@nLoop,1) as integer ) * 1)
end
select @v_mok = @v_sum % 10
if @v_mok = 0
select @v_checkdigit = cast(@v_mok as varchar)
else
select @v_checkdigit = cast((10 - @v_mok) as varchar)
RETURN @v_checkdigit
END