Función para obtener dígito verificador en Sql Server
En esta oportunidad les presento una función muy util que los ayudará al momento de querer calcular el dígito verificador de cualquier rut.
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author:-- Create date: <11/08/2015> -- Description: -- ============================================= CREATE FUNCTION FnObtieneDigitoVerificador (@rut INT) RETURNS varchar(1) AS BEGIN DECLARE @dv VARCHAR(1); DECLARE @Digito INT; DECLARE @Contador INT; DECLARE @Multiplo INT; DECLARE @Acumulador INT; SET @Contador = 2; SET @Acumulador = 0; SET @Multiplo = 0; WHILE(@rut!=0) BEGIN SET @Multiplo = (@rut%10) * @Contador; SET @Acumulador = @Acumulador + @Multiplo; SET @rut = FLOOR(@rut / 10); SET @Contador = @Contador + 1; IF(@Contador = 8) BEGIN SET @Contador = 2; END; END; SET @Digito = 11 - (@Acumulador%11); SET @dv = LTRIM(RTRIM(CAST(@Digito as CHAR(2)))); IF(@Digito = 10) BEGIN SET @dv = 'K'; END; IF(@Digito = 11) BEGIN SET @dv = '0'; END; RETURN @dv; END
Espero sea de vuestra utilidad,
Saludos