Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    istruzione delete sql server 2000

    Ho questo problema e da tutto ieri non ne vengo a capo
    devo fare delle pagine Asp con un database SQL server 2000
    Ci sono 2 tabelle : tabmessaggiforum e tabrisposteforum
    Questi sono i campi
    Tabmessaggiforum :
    Idmessaggio
    idutente
    idargomento
    oggettomessaggio
    testomessaggio
    datamessaggio


    tabrisposteforum :
    idrisposta
    idmessaggio
    idutente
    testorisposta
    datarisposta

    La relazione sta in idmessaggio
    Non mi viene l’istruzione delete su un messaggio che ha almeno una risposta
    Faccio un esempio
    delete from tabmessaggiforum where idmessaggio=34
    infatti idmessaggio 34 ha una risposta


    Mi esce scritto :
    Server: messaggio 547,.....
    L'istruzione DELETE ha generato un conflitto con il vincolo COLUMN REFERENCE 'FK_TabRisposteForum_TabMessaggiForum' nel database 'xyz', tabella 'TabRisposteForum', column 'IDMessaggio'.
    L'istruzione è stata interrotta.

    se invece faccio
    delete from tabmessaggiforum where idmessaggio=39
    funziona in quanto idmessaggio=39 non ha risposte
    Gentilmente chi mi può aiutare ? Grazie

  2. #2
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Se tabmessaggiforum contiene il post principale, immagino che anche le risposte correlate dovrebbero essere cancellate. Penso che una soluzione possa essere questa:

    delete from tabmessaggiforum INNER JOIN tabrisposteforum ON Tabmessaggiforum.Idmessaggio = tabrisposteforum.Idmessaggio
    where tabmessaggiforum.idmessaggio=34

  3. #3
    In realtà avevo fatto anche così ma mi da il seguente messaggio :Sintassi non corretta in prossimità della parola chiave 'INNER'.
    Invece con una select funziona alla grande

  4. #4
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Hai provato con LEFT JOIN?

  5. #5
    fatto anche cosi ed anche con right join ma senza risultati

  6. #6
    Utente di HTML.it L'avatar di salvod
    Registrato dal
    Feb 2002
    Messaggi
    314
    secondo me il problema sta in fase di progettazione, saranno stati indicati VI su kiavi esterne fatti male dovresti fare un "ON DELETE CASCATE"

  7. #7
    Ho risolto così :
    struttura tabmessaggiforum
    proprietà relazione tabmessaggiforum_tabrisposteforum
    ho selezionato l’opzione elimina a catena i record correlati
    quindi a sto punto la query è:
    delete from tabmessaggiforum where idmessaggio=34
    L'ho già provata pure in asp dove il numero di idmessaggio è rappresentato da una querystring e funziona tutto bene
    Grazie a tutti gli amici che mi hanno risposto

  8. #8
    Utente di HTML.it L'avatar di salvod
    Registrato dal
    Feb 2002
    Messaggi
    314
    bene.. alla fine come ti avevo suggerito io

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.