Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

Aktualisieren von Daten mit dem UPDATE Statement

Geschrieben von: Christoph Wille
Kategorie: Datenbank

Daten in einer Datenbank kann man mit ADO auf zweierlei Arten verändern - einerseits durch Verwendung eines Recordsets mit der Update Methode, als auch mit dem UPDATE Statement und dem Execute Befehl des Connection Objekts. Meist ist UPDATE die schnellere Wahl, und was noch hinzukommt, die flexiblere Lösung.

Dieser Artikel ist ein Folgeartikel zu Einfügen eines Datensatzes mit dem INSERT Statement. Es gelten für das UPDATE Statement die gleichen Voraussetzungen für Textwerte, Datumswerte und Zahlenwerte wie für das INSERT Statement.

Änderungen an einzelnen Datensätzen

Generell sieht die Syntax des UPDATE Statement vereinfacht wie folgt aus:

UPDATE Tabelle SET Feld1 = 'neuer Wert', Feld2 = 'neuer Wert'
   WHERE SchlüsselFeld = Schlüsselwert

Um also beispielweise den Nachnamen in einer Personentabelle zu ändern, könnte ein UPDATE Statement wie folgt aussehen:

UPDATE tPersonendaten SET Nachname = 'Wille'
  WHERE SozVersNummer = 4711010100

In diesem Beispiel wird - so die Spalte SozVersNummer ein Primärschlüsselfeld ist - nur dieser eine Datensatz verändert. Wenn mehrere Zeilen das Einschränkungskriterium erfüllen, so wird jede einzelne Zeile aktualisiert.

Um gleich auf eine Gefahr hinzuweisen - was passiert, wenn man auf die WHERE Clause vergisst, und folgendes Statement ausführt?

UPDATE tPersonendaten SET Nachname = 'Wille'

Nun, es fehlt die Einschränkung auf die Zeile, die verändert werden soll - und wenn es keine Einschränkung gibt, dann gilt das UPDATE für alle Zeilen! Und dann sollte man ein möglichst aktuelles Backup haben, um die Daten wieder in den Originalzustand versetzen zu können. Ergo - Vorsicht, immer das UPDATE Statement doppelt kontrollieren!

UPDATE's an mehreren Zeilen

Warum widme ich dieser Thematik eine eigene Überschrift? Der Grund ist, daß man mit dem UPDATE Statement elegant und schnell Code dieser Art beschleunigen kann:

' rs mit "SELECT * from tProducts" geöffnet
While Not rs.EOF
  rs("Preis") = rs("Preis") * 0.02
  rs.Update
  rs.MoveNext
Wend
rs.Close

Das Problem ist hier, daß ich über eine potentiell sehr große Anzahl von Zeilen iteriere, und mit den einzelnen Aufrufen von Update die Performance meiner Applikation zerstöre. Man könnte es zwar mit Tricks (client-side Cursor, etc) erträglich machen, aber es gibt eine bessere Lösung:

conn.Execute "UPDATE tProducts SET Preis=Preis*0.02"

Der Code reduziert sich auf eine Zeile, und die Arbeit des Änderns wird von der Software durchgeführt, die es am besten kann: die Datenbank.

Schlußbemerkung

Im heutigen Artikel habe ich mich auf die häufigsten Anwendungsfälle beschränkt. Die vollständige Syntax des UPDATE Statements erlaubt es unter anderen auch Berechnungen für Updates über mehrere Tabellen hinweg durchzuführen, und einiges an spannenden Dingen mehr.

Verwandte Artikel

Benutzerverwaltung leicht gemacht: Teil 1
Datensätze mit dem DELETE Statement löschen
Der SQL UNION Operator
Ein einfacher Query Analyzer
Einfügen eines Datensatzes mit dem INSERT Statement
Seitenzugriffscounter für HTML Dokumente in ASP realisieren
Stored Procedures einfach erstellt
T-SQL Clauses: GROUP BY und HAVING
Update und UpdateBatch zum Einfügen von Datensätzen in Datenbanken

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.