Nombres Propios en SQL Server 2008
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