Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Trigger Actualizar Cupos

Estas en el tema de Trigger Actualizar Cupos en el foro de SQL Server en Foros del Web. BUENAS AMIGOS DEL FORO TENGO UN PROBLEMA QUE POR IGNORANCIA NO LOGRO RESOLVER TENGO 2 TABLAS <CURSOS> CODIGO NOMBRE CUPOS INSCRITOS <INSCRITOS> CEDULA CODIGO_CURSO TENGO ...
  #1 (permalink)  
Antiguo 20/07/2006, 12:06
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Trigger Actualizar Cupos

BUENAS AMIGOS DEL FORO TENGO UN PROBLEMA QUE POR IGNORANCIA NO LOGRO RESOLVER
TENGO 2 TABLAS

<CURSOS>
CODIGO
NOMBRE
CUPOS
INSCRITOS

<INSCRITOS>
CEDULA
CODIGO_CURSO

TENGO DOS TRIGGER PARA LA TABLA INSCRITOS

CREATE TRIGGER [DelActividades] ON dbo.INSCRITOS
FOR DELETE
AS

BEGIN
DECLARE @Codigo Varchar(2)
SET @Codigo =(SELECT CODIGO_CURSO FROM Deleted)

UPDATE CURSOS
SET inscritos=(SELECT COUNT(Cedula) FROM INSCRITOS WHERE codigo_CURSO=@Codigo)
WHERE CODIGO=@Codigo

END

CREATE TRIGGER [DelActividades] ON dbo.INSCRITOS
FOR INSERT
AS

BEGIN
DECLARE @Codigo Varchar(2)
SET @Codigo =(SELECT CODIGO_CURSO FROM Deleted)

UPDATE CURSOS
SET inscritos=(SELECT COUNT(Cedula) FROM INSCRITOS WHERE codigo_CURSO=@Codigo)
WHERE CODIGO=@Codigo

END


SON DOS UNO PARA CUANDO BORRAMOS UN REGISTRO ACTUALIZA EN LA TABLA CURSOS EL TOTAL DE INSCRITOS
Y OTRO PARA LA INSERCION QUE TAMBIEN ACTUALIZA LA MISMA TABLA EL TOTAL DE INSCRITOS

EL PROBLEMA ES CUANDO ALGUIEN SE CAMBIA DE CURSO OSEA UN UPDATE DEBO ACTUALIZAR TANTO EL CURSO EN QUE ESTABA COMO EN EL QUE VA A ESTAR OSEA ALGO ASI EN PSEUDOCODIGO

ACTUALIZA CURSO
ASIGNANDO INSRITOS A LA SUMA DE LOS INSCRITOS DONDE CODIGO= NUEVO CURSO Y TAMBIEN VIEJO CURSO
ES LO MISMO QUE DECIR NUEVO =NUEVO+1
VIEJO =VIEJO-1 ;

EL ROLLO ES QUE CON LA TABLA LOGICA INSERTED, O DELETE NO CAMINA PORQUE NO ESTOY NI INSERTANDO NI BORRANDO SOLO CAMBIANDO
DE REPENTE PARA USTEDES CON SU EXPERIENCIA ESTO ES UNA TONTERIA PERO PARA ESO ESTOY ACA ....PARA APRENDER DE LOS QUE SABEN

AGRADECIDO ....
  #2 (permalink)  
Antiguo 20/07/2006, 15:00
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Cambia esto:
SET @Codigo =(SELECT CODIGO_CURSO FROM Deleted)

por esto:
SELECT @Codigo = CODIGO_CURSO FROM Deleted

Si eso hace que tu trigger funcione de cualquier forma regresa después, todavía quedan mejoras aplicables.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 21/07/2006, 08:51
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Crei Que Era Lo Mismo

Pense Que Era Lo Mismo

Set Para Asignar A Variable Que
Select

Me Dices Que Asi El Manejador Entiende Lo Que Quiero Osea

Actualizar Curso Nuevo

Pero Y El Curso Viejo De Donde Viene El Alumno Voy A Probarlo A Ver Muchas Gracias Por Su Pronta Respuesta

A Cuales Mejoras Se Refiere.....
  #4 (permalink)  
Antiguo 21/07/2006, 15:06
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
No entendí tu mensaje, pero primero preocúpate por hacerlo funcionar como lo tienes ahora y luego hablamos de mejoras
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:00.