Hola:
Esta pregunta la hice en el foro de sql server, y no me han respondido acertadamente.
Tengo tres tabla, eventos, eventos publico y solicitudes invitaciones.
Las dos primeras tienen una relación directa. Solicitudes invitaciones tiene relación con eventos publico.
Edito un registro de eventos que tiene varios registros de eventos publico. Permito editar, dar de alta y borrar.
Al editar pongo un literal visible false que es la clave primaria de cada evento publico que edito. Puede, por ejemplo, haber 6 eventos publico por cada evento. Y pongo 0 en ese literal para los eventos publico que doy de alta, no tiene clave primaria.
En un sp hago
update dbo.[eventos publico] set nombre=que,finicio=o.finicio,ffin=o.ffin,importe=o.importe,descripcion=o.descripcion from @agendas o inner join dbo.[eventos publico] on ep0=o.id0
para actualizar registros
Y
insert dbo.[eventos publico] (ep1,nombre,finicio,ffin,importe,descripcion) select @id0,que,finicio,ffin,importe,descripcion from @agendas o where id0=0
para insertar
Ahora me falta el comando para borrar, que no sé cómo hacerlo. Se trata de borrar aquellos eventos publico donde el literal no es 0 (adición) ni se haya editado, que el usuario ha dado de baja, en donde la clave primaria (el literal) ya no debería estar
en la tabla eventos publico.
Hago manualmente la adición, actualización y borrado ya que, antes hacía un borrado y adición de registros nuevos, pero con esta técnica me rompe la relación eventos publico-solicitudes invitaciones.
Me gustaría una ayuda, si podéis. Por mucho que piense, no doy con esa sentencia de borrado.
Muchísimas gracias.
PD: si sabéis de un lugar donde puedan ayudarme, aparte de vosotros, me gustaría saberlo. O igual se os ocurre otra técnica.