[SQL] Verbinden mehrerer UPDATE-Statements

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/sql_verbinden_mehrerer_update-statements_33259/page_1 - zur Vollversion wechseln!


JC schrieb am 03.05.2002 um 10:41

Code:
"UPDATE pflidataTMP SET hat_eq_T = 'x' WHERE hat_eq = -1"
"UPDATE pflidataTMP SET hat_ev_T = 'x' WHERE hat_ev = -1"
usw...
Kann ich das nicht irgendwie zu einem einzigen Statement zusammenfassen?


Ringding schrieb am 03.05.2002 um 11:21

"UPDATE pflidataTMP SET hat_eq_T = 'x',hat_ev_T = 'x' WHERE hat_eq = -1"


schrieb am 03.05.2002 um 11:25

Zitat von Ringding
"UPDATE pflidataTMP SET hat_eq_T = 'x',hat_ev_T = 'x' WHERE hat_eq = -1"

nope. für zwei unterschiedliche where clauseln funkt das zusammenfassen net.


JC schrieb am 03.05.2002 um 11:26

Zitat von Ringding
"UPDATE pflidataTMP SET hat_eq_T = 'x',hat_ev_T = 'x' WHERE hat_eq = -1"
Thx, darauf bin ich auch gekommen, aber das Problem ist, dass hat_eq nicht immer gleich hat_ev ist, sprich, er updatet mir dann auch bei den hat_ev nur die felder, die bei hat_eq ein -1 stehen haben...


JC schrieb am 03.05.2002 um 11:26

Zitat von rettich
nope. für zwei unterschiedliche where clauseln funkt das zusammenfassen net.
Ah, das wollte ich wissen, thx :)


funka schrieb am 03.05.2002 um 11:28

dsie 2 statements kannst nicht zusammenlegen

weil sie verschiedene sachen in verschiedenen faellen machen


Ringding schrieb am 03.05.2002 um 11:28

Oops, sorry. Hab ich übersehen.


funka schrieb am 03.05.2002 um 11:55

du kannst es per (sprache drueber - zb.) php in eine schleife hauen
wenn alle updates so gleich sind
dann hast zumindest weniger code


JC schrieb am 03.05.2002 um 12:20

Zitat von funka
du kannst es per (sprache drueber - zb.) php in eine schleife hauen
wenn alle updates so gleich sind
dann hast zumindest weniger code

Code:
    For intCounter = 1 To 8
        Select Case intCounter
            Case 1
                sql = "INSERT INTO pflidataTMP SELECT * FROM pflidata;"
            Case 2
                sql = "UPDATE pflidataTMP SET hat_eq_T = 'x' WHERE hat_eq = -1;"
            Case 3
                sql = "UPDATE pflidataTMP SET hat_ev_T = 'x' WHERE hat_ev = -1;"
            Case 4
                sql = "UPDATE pflidataTMP SET hat_kv_T = 'x' WHERE hat_kv = -1;"
            Case 5
                sql = "UPDATE pflidataTMP SET hat_u_T = 'x' WHERE hat_u = -1;"
            Case 6
                sql = "UPDATE pflidataTMP SET hat_gw_T = 'x' WHERE hat_gw = -1;"
            Case 7
                sql = "UPDATE pflidataTMP SET hat_al_T = 'x' WHERE hat_al = -1;"
            Case 8
                sql = "UPDATE pflidataTMP, Rechtsf SET pflidataTMP.Rechtsform_T = [Rechtsf].[Rechtsform] WHERE (((pflidataTMP.rechtsform)=[Rechtsf].[Code]));"
        End Select
        db.Execute sql
    Next
    db.Close
    Set db = Nothing
hab's so gelöst :)
funzt einwandfrei


Ringding schrieb am 03.05.2002 um 14:58

So war's aber nicht gemeint. Das ist ja keine Schleife im eigentlichen Sinn, weil sie bei jedem Durchlauf was komplett anderes macht. Da könntest du's ja gleich hintereinander schreiben.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025