Dopo varie prove e controprove credo di aver capito tutto.
Siccome c'è una FOREIGN KEY e un vincolo referenziale con valori primari io NON posso fare una update singola per ogni tabella ma devo per forza fare tutto in un'unica UPDATE.
Mi hanno detto di fare una update con una join incorporata.
Le mie due tabelle sono DOCMAST e DOCDETT
e i campi per le quali sono unite sono NUMDOC e CODCLI
io devo aggiornare 2 campi; il campo STATO presente solo su DOCMAST e sopratutto il campo NUMDOC presente sia su DOCMAST che su DOCDETT (quindi devo aggiornare il campo contemporaneamente su tutte e due le tabelle).
Che rispettano una determinata condizione WHERE.
La relazione tra DOCMAST e DOCDETT è uno a molti.
Io ho scritto così ma ci deve essere qualche errore:
codice:
qry = qry & " UPDATE dbo.DOC_MAST INNER JOIN dbo.DOC_DETT ON dbo.DOC_MAST.NUMDOC = dbo.DOC_DETT.NUMDOC AND dbo.DOC_MAST.CODCLI = dbo.DOC_DETT.CODCLI "
qry = qry & " SET dbo.DOC_MAST.NUMDOC = " + request.form(pratica) + " , dbo.DOC_MAST.STATO = '" + request.form(stato) + "' , dbo.DOC_MAST.CODCLI = " + request.form(codcli) + " " & vbcrlf
qry = qry & " WHERE dbo.DOC_MAST.NUMDOC = " + request.form(praticaold) + " AND dbo.DOC_MAST.CODCLI = " + request.form(codcli) + " AND dbo.DOC_MAST.STATO = '" + request.form(statoold) + "' " & vbcrlf
qry = qry & "if @@error <> 0 begin rollback RETURN end" & vbcrlf
ho provato a fare la query diciamo relativa a questo update ovvero questa e funziona:
codice:
SELECT dbo.DOC_MAST.CODCLI, dbo.DOC_MAST.NUMDOC, dbo.DOC_MAST.STATO FROM dbo.DOC_MAST INNER JOIN dbo.DOC_DETT ON dbo.DOC_MAST.NUMDOC = dbo.DOC_DETT.NUMDOC AND dbo.DOC_MAST.CODCLI = dbo.DOC_DETT.CODCLI WHERE dbo.DOC_MAST.CODCLI = ? AND dbo.DOC_MAST.NUMDOC = ? AND dbo.DOC_MAST.STATO = ?"
però l'aggiornamento non va...... dai che ci sono vicino datemi una mano pleaseeee!!!!!