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