none
Eliminar registros editados y dados de baja por el usuario RRS feed

  • Pregunta

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



    • Editado volar.2016 lunes, 28 de octubre de 2019 16:28
    lunes, 28 de octubre de 2019 16:24

Todas las respuestas

  • Estimado volar.2016:

    Esta pregunta la hice en el foro de sql server, y no me han respondido acertadamente.

    En este hilo https://social.technet.microsoft.com/Forums/es-ES/e6f55824-75ce-4aa6-8453-0612fd39f676/tipo-de-tabla-definido-por-el-usuario?forum=sqlserveres

    hiciste la pregunta, y la marcaste como respuesta correcta.

    Además de que el compañero José Diz te hizo varias preguntas para poder ayudarte con la respuesta, y a las cuales, no has respondido, con la precisión que te requerían, pegando un código de un sp, largo y que añade más complejidad a una pregunta con una definición muy "justa".

    Por otro lado, requerda que estos son foros de desarrolladores, para que te echen un cable, no para que realicen tu código.

    Todo esto te lo comento, porque desde mi opinión, José se ha tomado muchas molestias, generando código para ti. Y tu definición sigue siendo muy poco precisa.

    ---------------------------------------

    pongo un literal visible false que es la clave primaria

    ¿Cuál es la clave primaria?, ya que ese concepto de literal para una sentencia de borrado, no parece apropiado.

    Entiendo entoces que en la tabla [eventos publico] en la columna nombre registras un 0 cuando no estan asociados a ningún registro de [eventos]

    ni se haya editado

    ¿Qué indica esto? = literal visible false

    ¿Cual es esa columna? ¿De que tipo es?

    lunes, 28 de octubre de 2019 20:47