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