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...