Archivo

Archivo para Diciembre, 2010

Nombres Propios en SQL Server 2008

Lunes, 20 de Diciembre de 2010 DarkbyteMX Comments

Realmente no es una función para detectar nombres propios, sino, para poner en mayúscula la Primer Letra De Cada Palabra.

Muchos hacen este tipo de validaciones detrás del código de la aplicación, bueno, pues acá está otra opción por si desean hacerlo desde Microsoft SQL Server 2008. No la he probado en otras versiones de SQL, pero, con algunos pequeños ajustes debería funcionar.

La función recibe un texto del tipo NVARCHAR(MAX) y devuelve un otro texto del Tipo del tipo NVARCHAR(MAX).

CREATE FUNCTION NombrePropio(@TEXT AS VARCHAR(MAX))
/* Función para poner la primer letra de cada palabra en mayúscula */
RETURNS VARCHAR(MAX)
AS
BEGIN
   DECLARE @RESET BIT;
   DECLARE @RET VARCHAR(MAX);
   DECLARE @I INT;
   DECLARE @C CHAR(1);

   SELECT @RESET = 1, @I=1, @RET = ”;
  
   WHILE (@I <= LEN(@TEXT))
       SELECT @C= SUBSTRING(@TEXT,@I,1),
               @RET = @RET + CASE WHEN @RESET=1 THEN UPPER(@C) ELSE LOWER(@C) END,
               @RESET = CASE WHEN @C LIKE ‘[a-zA-Z]‘ THEN 0 ELSE 1 END,
               @I = @I +1
   RETURN @RET
END

Para utilizarla sólo hay que poner una sentencia como esta:

select dbo.NombrePropio(‘caDa paLaBRA debe eMpeZAr coN MAYÚScula’)

 

Y nos regresará como esto: Cada Palabra Debe Empezar Con Mayúscula

Nota: Hay q usar el esquema con el que se creó la función, en este caso dbo