SQL Server - Llamar a procedimiento almacenado desde un update

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 29 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Llamar a procedimiento almacenado desde un update

Publicado por Mina (1 intervención) el 28/09/2016 02:27:47
Buen día

Tengo una tabla con los siguientes campos: id, nombre, nivel1, nivel2, calificacion

en el campo calificación debo guardar un calculo hecho con los campos nivel1 y nivel 2

Mi tabla tiene mas de 300000 registros, trato de hacer lo siguiente

updATE [dbo].[TABLA]
SET calificacion = exec dbo.calificar id, nivel1, nivel2

dbo.calificar es un procedimiento almacenado que me hace ese cálculo y me retorna el valor que va en el campo calificacion, pero me marca error en la palabra "exec", que debo hacer??

De antemano agradezco su respuesta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Llamar a procedimiento almacenado desde un update

Publicado por Isaias (4557 intervenciones) el 28/09/2016 17:20:00
Cambi tu ejecucion de procediimiento y definie un CAMPO CALCULADO, ¿es muy complicado lo que calcula tu procedimiento?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Llamar a procedimiento almacenado desde un update

Publicado por jams (93 intervenciones) el 28/09/2016 18:30:09
Hola buenos días, prueba lo siguiente

la definición de tu variable tipo output debe hacerse como un parámetro del procedimiento

CREATE PROC DEVUELVE_COSTO
@TANDA INT, @DIA INT, @CARRERA INT,@costo numeric(12,2) OUTPUT


lo que viene es importantísimo

para implementar y obtener el valor de tu variable tipo outup necesitas hacer lo siguiente

declarar una variable local

declare @variableloc numeric(12,2)
set @variableloc=0

ejecutas tu procedimiento

exec DEVUELVE_COSTO PARAM1,PARAM2,@COSTO=@VARIABLELOC OUTPUT

PRINT @VARIABLELOC

Aunque parece un error la asignación es al contrario pruébalo y ojala y sea lo que necesitas y te sirva

ya después puedes hacer tu update como lo requieres

updATE [dbo].[TABLA]
SET calificacion = @VARIABLELOC

en mi opinión le falta un filtro para hacer la actualización

Saludos y suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar