Ver Mensaje Individual
  #2  
Antiguo 18-07-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Reputación: 24
poliburro Va por buen camino
Está función igual puede servirte.

Select Databae.Owner.FcMinMayTexto('PEPE PECAS pica papas')

Que sería en tu tabla

Código SQL [-]

Update Table
    Set Campo = Modificada.CampoMod
From (
        Select Llave, 
                 Databae.Owner.FcMinMayTexto(Campo) As CampoMod
          From Tabla     
       ) As Modificada
Where Table.Clave = Modificada.Llave

Suerte

Código SQL [-]
 
IF EXISTS (SELECT * 
    FROM   sysobjects 
    WHERE  name = N'FcMinMayTexto')
 DROP FUNCTION FcMinMayTexto
GO
Create  FUNCTION FcMinMayTexto
 (@Ptexto As Varchar(100))
RETURNS VarChar(100)
AS
 BEGIN
   Declare
     @ViPos As Integer,       --Define la posicion del espacio en blanco en el texto
     @VSAux  As Varchar(100), 
     @VSRes  As Varchar(100), --Almacena el texto resultado
     @VSSubS As Varchar(100)  --Almacena la subcadena cuya posicion inicia con el primer espacio en blanco encontrado dentro del texto
     
   Set @VSSubS = Upper(LTrim(RTrim(@PTexto)))
   Set @ViPos = 1  
   Set @VSRes = ''
   
   --Bloque que analiza las dos primeras letras del texto para saber donde inician las letras y convertirla a mayúscula-
   Set @VSAux = Substring(@VSSubS,@ViPos,1)
   If  Ascii(@VsAux) < 65 Or Ascii(@VsAux) > 90 Or Ascii(@VsAux) = 209
     Begin
       Set @VSAux = Substring(@VSSubS,@ViPos + 1,1)        
       If Ascii(@VsAux) < 65 Or Ascii(@VsAux) > 90 Or Ascii(@VsAux) = 209
        begin
          Set @ViPos = @ViPos + 1
        End
       Set @VSSubs = Lower(@VSSubs)
       Set @VSSubs = Substring(@VSSubS,1,@ViPos) + Upper(Substring(@VSSubS,@ViPos + 1,1)) + Substring(@VSSubS,@ViPos + 2,Len(@VSSubS))   
       Set @Vipos = 10 --De esta manera le digo al siguiente bloque si debe o no convertir a minúsculas el texto
     End
  If @ViPos < 10
    Set @VSSubs = Lower(@VSSubs)
  --El siguiente bloque separa en palabras la cadena de texto y convierte en mayuscula la primera letra de cada una
  While @ViPos > 0 
    Begin
      Set @ViPos  = charIndex(' ',@VSSubS) 
      Set @VSAux  = Substring(@VSSubS,0,@ViPos + 1)
      Set @VSAux  = Upper(Left(@VSAux,1)) + Substring(@VSAux,2,Len(@VSAux))
      Set @VSRes  = @VSRes + @VSAux
      Set @VSSubS = Substring(@VSSubS,@ViPos + 1,Len(@VSSubS)) 
    End
  Return @VSRes + Upper(Left(@VSSubS,1)) + Substring(@VSSubS,2,Len(@VSSubS))
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
__________________
Conoce mi blog http://www.edgartec.com

Última edición por poliburro fecha: 19-07-2007 a las 00:50:39.
Responder Con Cita