Knowledgebase: Problemstellung & L�sung
Knowledgebase: Sitemap Sie befinden sich hier:
Knowledgebase -> Warenwirtschaft -> SQL: alte Positionen von gelöschten Aufträgen löschen

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

Problemstellung:
Knowledgebase: Frage SQL: alte Positionen von gelöschten Aufträgen 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
SQL-Anweisung zu überprüfen

frei Posten anzeigen:

SELECT * FROM Positionen
WHERE Auftrag NOT IN (SELECT Auftrag FROM Auftrag)

alte Positionen von gelöschten Aufträgen löschen:

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