Knowledgebase: Problemstellung & L�sung
Knowledgebase: Sitemap Sie befinden sich hier:
Knowledgebase -> Warenwirtschaft -> SQL: mehrere Datensätze mit SQL löschen

Knowledgebase: KB-Artikel versenden Diesen KB-Artikel an folgende E-Mail Adresse weiterempfehlen:
Empf�nger-Adresse:  

Problemstellung:
Knowledgebase: Frage SQL: mehrere Datensätze mit SQL löschen

L�sung:
Knowledgebase: Antwort Der AFS-Kaufmann besitzt eine leistungsstarke SQL-Schnittstelle mit der man Zugriff auf die leistungsstarke Datenbanksprache hat.

Die SQL-Sprache wird nicht in der Doku des AFS-Kaufmanns beschrieben, da diese so mächtig ist, das
dies mehrere tausend Seiten füllen würde. Dies würde auch für den normalen Anwender viel zu weit führen. Wenn Sie aber die leistungsstarke Datenbanksprache voll nutzen möchten, so gibt es von vielen Verlagen Bücher zu diesem Thema:

Beispiel:
SQL- Der Standard
Verlag: Addison-Wesley
ISBN: 9783827313454


In einem "Rutsch" löschen

Dazu gibt es die SQL-Anweisung DELETE FROM gefolgt von Datenbanknamen.
Mit der Where Funktion kann man die Abfrage auch beschränken, z.B. auf eine Warengruppe,
Adressen in einem bestimmten Postleitzahlenbereich, usw

WICHTIG:
1.) Bevor Sie mit der SQL-Funktion mit den Datenbanken "spielen", bitte machen Sie unbedingt eine Datensicherung,
das sonst die Änderungen nicht rückgängig gemacht werden können!

2.) Wenn Sie selbst SQL-Operationen durchführen, kann die Referenzintegrität nicht überwacht werden d.h.
wenn Sie z.B. einen Artikel löschen, der in einem Vorgang ist, so ist der Vorgang beschädigt, d.h. der Text und Artikelnr sind nicht mehr verfügbar!
Deshalb ist hierbei größte Vorsicht angebracht


Und so gehts:
Im AFS-Kaufmann Menü Werkzeuge, Menüpunkt SQL Editor hier geben Sie die SQL-Anweisung ein.
ACHTUNG: SQL-Anweisungen mit dem Befehl DELETE können nach dessen Ausführung nicht dargestellt werden,
deshalb erscheint nach der Ausführung eine Fehlermeldung. Um zu kontrolieren, ob die Anweisung ausgeführt wurde
öffen Sie ein 2. SQL-Fenster. Starten Sie hier nach eine 2. Anweisung mittels SELECT * FROM Datenbank, um die
UPDATE-Anweisung zu überprüfen

Beispiele:

Löscht alle Artikel von allen Mandanten:

DELETE FROM Artikel

Löscht alle Artikel von 2. Mandanten dessen Namen das Wort Kabel enthalten:

DELETE FROM Artikel
WHERE Mandant=2 AND Bezeichnung LIKE "Kabel%"

Artikel eines Lieferanten anzeigen (Lieferant Nr 5 (internes Feld Adresse NICHT die Nummer))
SELECT * FROM Artikel_Lieferrant v LEFT OUTER JOIN Artikel a ON a.Artikel=v.Artikel
WHERE v.Lieferant=5

Artikel eines Lieferanten löschen (Lieferant Nr 5 (internes Feld Adresse NICHT die Nummer))
DELETE FROM Artikel
WHERE Artikel IN (Select Artikel FROM Artikel_Lieferrant WHERE Lieferant=5)

Artikel löschen, die nicht verkauft wurden:
ACHTUNG: Stücklistenartikel werden hier nicht berücksichtig und werden auch gelöscht

DELETE FROM Artikel
WHERE Artikel NOT IN (SELECT Artikel FROM Positionen)