Nur per SQL. Was muss denn gelöscht werden?
Zu beachten ist, dass die Daten nicht verwendet sein dürfen. Ein Artikel, der schon in einem Fertigungsauftrag verwendet wurde, kann beispielsweise nur inaktiv gesetzt, nicht aber gelöscht werden.
Es sollen Mitarbeiter aus dem Mitarbeiterstamm gelöscht werden.
Wie Sie aber richtig erwähnt haben, funktioniert das nur, wenn sich keine anderen Datensätze auf diesen Mitarbeiter beziehen.
Dies ist aber z.B. bei der Zeiterfassung der Fall, bei der ca. 1000 Kommen-Gehen Datensätze hinterlegt sind.
Warum sollen diese nicht einfach inaktiv gesetzt werden. So geht die Information, dass diese in der Firma gearbeitet haben bzw. was deren Aufgabengebiet war, nicht verloren?
-- Einzelzeiten löschen
DELETE FROM BSMB
WHERE BSM_ID_PER_NR IN (SELECT ID FROM BSM WHERE AUSDATUM IS NOT NULL AND AUSDATUM <= CURRENT_DATE);
COMMIT;
-- Mitarbeiter löschen
DELETE FROM BSM WHERE AUSDATUM IS NOT NULL AND AUSDATUM <= CURRENT_DATE;
COMMIT;
IMMER erst in einer Testdatenbank (Kopie der echten Datenbank) ausführen und das Ergebnis überprüfen!