Prroblema con funciones almacenadas SQL SERVER 2000

tema enviado por Roy en SQL
tema iniciado el 23/02/2008

Buenas tardes....

estoy comenzando a hacer uso de la funciones almacenadas en SQL server, pero tengo un pequeño inconveniente con la clausula UPDATE que no he podido solucionar cuando intento crear esta funcion:

CREATE  FUNCTION VerificaItinerario(@ITINERARIO NUMERIC(9),@FECHALECT DATETIME) 
RETURNS VARCHAR(2)  AS 
BEGIN
declare @CORRECTO AS VARCHAR(2),@CANTFTP AS NUMERIC(9), @CANTVAL AS NUMERIC(9),@ESTADO VARCHAR(3)

-- consulta el Itinerario para traer la cantidad de servicios
SET @CANTFTP= (select Count(Medidor) as Cantidad
       from icl1constancias
      where fechaLect=@FECHALECT and Itinerario=@ITINERARIO and medidor!='Condir')

--Realizo la consulta para traer la cantidad del archivo de validacion
SET @CANTVAL=(Select Medidos
      from icl0valconstancias
      where itinerario=@ITINERARIO and fechaLect=@FECHALECT  )

--verifico si la cantidad de servicios medidos es la misma
IF @CANTFTP=@CANTVAL
 BEGIN
  SET @CORRECTO='SI'
  SET @ESTADO='OK'
 END
ELSE
 SET @CORRECTO='NO'
 SET @ESTADO='MAL'

BEGIN
--Actualizo el servicio validado segun el resultado
UPDATE ICL0VALCONSTANCIAS SET ESTADO=@ESTADO WHERE ITINERARIO=@ITINERARIO AND FECHALECT=@FECHALECT
END

-- Retorno valor
RETURN (@CORRECTO)

END

 

EL ERROR QUE SALE ES EL SIGUIENTE:

Servidor: mensaje 443, nivel 16, estado 2, procedimiento VerificaItinerario, línea 28
Uso no válido de 'UPDATE' en una función.

Cuando elimino la clausula update de la funcion efectivamente funciona...

Muchas gracias por la colaboracion que puedan prestarme...