Markus**: SQL foreign keys

Hallo Forum,

ich hab mal 'ne Frage zu Foreign Keys in MS-SQL (T-SQL).
Und zwar möchte ich wissen, ob es eine Möglichkeit gibt, den PK-Datensatz automatisch zu löschen, sobald KEIN Fremdschlüssel mehr in der Verknüpften Tabelle existiert?

Gruß, Markus**

  1. Hallo Markus,

    Und zwar möchte ich wissen, ob es eine Möglichkeit gibt, den PK-Datensatz automatisch zu löschen, sobald KEIN Fremdschlüssel mehr in der Verknüpften Tabelle existiert?

    mit Foreign-Key-Constraints? Nein. Die sind nicht für so etwas da.
    Deine - für mich unverständliche - Aufgabenstellung kannst Du mit einem Trigger erledigen.

    Freundliche Grüße

    Vinzenz

    1. Hallo Markus,

      Hallo Vinzenz,

      mit Foreign-Key-Constraints? Nein. Die sind nicht für so etwas da.
      Deine - für mich unverständliche - Aufgabenstellung kannst Du mit einem Trigger erledigen.

      Die Aufgabenstellung ist in der Tat etwas eigenartig. Hab auch bisher noch nicht vor so einer Aufgabenstellung gestanden, daher auch die Frage! :)

      Danke und Gruß,
      Markus**

      1. moin,

        Die Aufgabenstellung ist in der Tat etwas eigenartig. Hab auch bisher noch nicht vor so einer Aufgabenstellung gestanden, daher auch die Frage! :)

        sagst du uns den auch die aufgabenstellung (nicht die technische, sondern fachliche), vielleicht gibt es ja eine andere lösung.

        Ilja

        1. der PK steht für einen Link auf eine Physische Datei auf dem Datenträge und die FK-Tabelle representiert entsprechend Benutzerrechte.
          Wenn in der Rechtetabelle KEINE Berechtigung mehr auf die Datei X vorliegt, kann sie ebenso aus der Link-Tabelle entfernt werden.

          Das könnte ich manuell erledigen, aber der einfachheit-halber ist die Methode mit dem Trigger schon gut. So liegen eben keine verwaisten einträge in der Link-Tabelle

          Gruß, Markus**

          1. moin,

            der PK steht für einen Link auf eine Physische Datei auf dem Datenträge und die FK-Tabelle representiert entsprechend Benutzerrechte.

            ich würde den Link nicht als PK nehmen, sondern einen künstlichen schlüssel und ein UNIQUE index und NOT NULL constraint auf die spalte legen. aber das ist sicherlich eine philosophie frage.

            Das könnte ich manuell erledigen, aber der einfachheit-halber ist die Methode mit dem Trigger schon gut. So liegen eben keine verwaisten einträge in der Link-Tabelle

            auch das ist sicherlich wieder eine philosophie frage. ich würde es so nicht  machen. wenn zum beispiel jemand die rechte des links bearbeiten will und erst mal alle rechte entfernt, um dann neue setzen zu wollen, dann ist er weg der link....

            Ilja