Funcion que permite validar todo tipo rut.
CREATE FUNCTION F_VALIDARRUT(@RUT INT, @DIGITO CHAR)
RETURNS BIT
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE @LARGO INT, @FACTOR INT, @CONTADOR INT, @CARACTER INT,
@SUMA INT, @DV INT, @ESVALIDO INT, @CDV VARCHAR(11)
SET @LARGO = LEN(@RUT)
SET @FACTOR = 2
SET @CONTADOR = 0
SET @CARACTER = 0
SET @SUMA = 0
SET @CDV = '123456789K0'
SET @ESVALIDO = 0
WHILE @LARGO <> 0
BEGIN
SET @CARACTER = SUBSTRING(CONVERT(VARCHAR,@RUT), @LARGO, 1)
SET @SUMA = @SUMA + (@CARACTER * @FACTOR)
SET @LARGO = @LARGO - 1
SET @FACTOR = @FACTOR + 1
IF @FACTOR = 8
SET @FACTOR = 2
END
SET @DV = 11 - (@SUMA % 11)
IF SUBSTRING(@CDV,@DV,1) = @DIGITO
SET @ESVALIDO = 1
RETURN @ESVALIDO
END
-- Como Ejecutar?
BEGIN TRY
DECLARE @ESVALIDO BIT
SET @ESVALIDO = DBO.F_VALIDARRUT(11111111, '1')
IF @ESVALIDO = 1
PRINT 'RUT VALIDO'
ELSE
BEGIN
PRINT 'RUT INVALIDO'
END
END TRY
BEGIN CATCH
PRINT 'HUBO UN ERROR AL COMPROBAR EL RUT'
END CATCH
|