viernes, 1 de agosto de 2014

Validar número de cédula nicaragüense en sql server

Hola amigos.

Hoy les traigo una función diseñada para sql server que muestra como hacer una sencilla validación de un numero de cédula nicaragüense. Esta función la he usado por varios años y funciona sin problemas para las versiones 2005, 2008 y 2012 de Microsoft SQL Server.
Sin mas preámbulo acá les dejo el código:
   
IF OBJECT_ID (N'dbo.ufn_EsCedula') IS NOT NULL
   DROP FUNCTION dbo.ufn_EsCedula
GO
/*
 * Autor: William Sánchez
 * Descripción: Verifica si una cadena de texto es un numero de cédula valida
 *    1) verifica que tenga el patrón:13 dígitos + 1 letra
 *    2) verifica que los 6 dígitos del 4to al 9no correspondan a una fecha valida
 */
CREATE FUNCTION ufn_EsCedula(@Texto NVARCHAR(16))
RETURNS BIT 
BEGIN
 DECLARE @EsCedula BIT
 IF(@Texto LIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][A-Z]')
  BEGIN
   IF (ISDATE(SUBSTRING(@Texto,8,2)+SUBSTRING(@Texto,6,2)+SUBSTRING(@Texto,4,2))=1)
    SET @EsCedula = 1;
   ELSE
    SET @EsCedula = 0; 
  END
 ELSE
  SET @EsCedula = 0;  
RETURN @EsCedula;
END

Espero que les sea de utilidad. Como siempre, agradezco sus comentarios constructivos.
Saludos

No hay comentarios:

Publicar un comentario