AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Update alle Einträge

Ein Thema von ibp · begonnen am 21. Jun 2010 · letzter Beitrag vom 21. Jun 2010
 
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#23

AW: SQL Update alle Einträge

  Alt 21. Jun 2010, 21:32
Und was war am MERGE mächtiger?
IST!
Bsp. aus der Firebird.Docs:
SQL-Code:
      MERGE
         INTO customers c
         USING (SELECT * FROM customers_delta WHERE id > 10) cd
         ON (c.id = cd.id)
         WHEN MATCHED THEN
            UPDATE SET name = cd.name
         WHEN NOT MATCHED THEN
            INSERT (id, name)
               VALUES (cd.id, cd.name)
Beim "UPDATE OR INSERT" werden IMMER entwerder INSERT oder UPDATE ausgeführt.
Dabei werden beim INSERT und UPDATE die GLEICHEN Felder eingefügt/geändert.

Beim Merge hat man die Möglichkeit beim Update andere Felder als beim Insert zu setzen. Und man kann eine von beiden Operationen wegzulassen.

Um wieder zu Thema "SQL Update alle Einträge" zurückzukehren:
In diesem Fall, es fände nur der ..WHEN MATCHED THEN UPDATE SET .. -Zweig
Verwendung, ..WHEN NOT MATCHED THEN INSERT .. würde man weglassen.

Ein Geschwindigkeitsvorteil gegenüber einem einfachen "UPDATE .. SET = (Select.. From..)"
ergibt sich wenn mehrer Felder der Zieltabelle aus gleichzeitig geändert werden.

SQL-Code:
      
  MERGE INTO customers c
   USING (SELECT * FROM customers_delta WHERE id > 10) cd
   ON (c.id = cd.id)
   WHEN MATCHED THEN
     UPDATE SET
       name = cd.name,
       FeldX = cd.ZZ,
       FeldY = cd.TTT;
Alexander
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz