Fremdschlüsselbeziehungen ändern

Gilt für: SQL Server 2016 (13.x) und spätere Versionen Azure SQL-DatenbankAzure SQL Managed InstanceSQL database in Microsoft Fabric

Sie können die Fremdschlüsselseite einer Beziehung in SQL Server mit SQL Server Management Studio oder Transact-SQL ändern. Wenn Sie den Fremdschlüssel einer Tabelle ändern, wird entsprechend angepasst, welche Spalten mit den Spalten in der Primärschlüsseltabelle verknüpft sind.

In diesem Thema

Bevor Sie beginnen

Beschränkungen und Einschränkungen

Die neue Fremdschlüsselspalte muss in Datentyp und Größe mit der Primärschlüsselspalte übereinstimmen, auf die sie sich bezieht, mit diesen Ausnahmen:

  • Eine Spalte vom Typ char oder sysname kann mit einer Spalte vom Typ varchar verknüpft werden.

  • Eine Spalte vom Typ binary kann mit einer Spalte vom Typ varbinary verknüpft werden.

  • Ein Aliasdatentyp kann mit seinem Basistyp verknüpft werden.

Security

Permissions

Erfordert die ALTER-Berechtigung für die Tabelle.

Verwendung von SQL Server Management Studio

So ändern Sie einen Fremdschlüssel

  1. Erweitern Sie im Objekt-Explorer die Tabelle, die den Fremdschlüssel enthält, und erweitern Sie anschließend Schlüssel.

  2. Klicken Sie mit der rechten Maustaste auf den zu ändernden Fremdschlüssel, und wählen Sie die Option Ändern.

  3. Im Dialogfeld Fremdschlüsselbeziehungen können Sie die folgenden Änderungen vornehmen.

    Ausgewählte Beziehung
    Listet bestehende Beziehungen auf. Wählen Sie eine Beziehung aus, um ihre Eigenschaften im Datenblatt rechts anzuzeigen. Wenn die Liste leer ist, wurden bisher keine Beziehungen für die Tabelle definiert.

    Add
    Erstellt eine neue Beziehung. Die Tabellen- und Spaltenspezifikation muss festgelegt werden, bevor die Beziehung gültig wird.

    Delete
    Löscht die in der Liste ausgewählte Beziehung ausgewählte Beziehung. Um das Hinzufügen einer Beziehung abzubrechen, verwenden Sie diese Schaltfläche, um die Beziehung zu entfernen.

    Allgemeine Kategorie
    Erweitern Sie, um Vorhandene Daten bei Erstellung oder erneutem Aktivieren überprüfen und Tabellen- und Spaltenspezifikationen anzuzeigen.

    Überprüfen vorhandener Daten beim Erstellen oder erneuten Aktivieren
    Überprüft alle Daten, die vor der Erstellung oder Reaktivierung der Einschränkung in der Tabelle vorhandenen sind, auf die Einschränkung hin.

    Kategorie Tabellen- und Spaltenspezifikation
    Erweitern Sie die Ansicht, um anzuzeigen, welche Spalten aus welchen Tabellen in der Beziehung als Fremdschlüssel bzw. als Primärschlüssel oder eindeutiger Schlüssel fungieren. Klicken Sie rechts neben dem Eigenschaftenfeld auf die Schaltfläche mit den Auslassungspunkten (...), um diese Werte zu bearbeiten oder zu definieren.

    Fremdschlüssel-Basistabelle
    Zeigt an, welche Tabelle die Spalte enthält, die in der ausgewählten Beziehung als Fremdschlüssel fungiert.

    Fremdschlüsselspalten
    Zeigt an, welche Spalte in der ausgewählten Beziehung als Fremdschlüssel fungiert.

    Basistabelle für Primärschlüssel/eindeutigen Schlüssel
    Zeigt an, welche Tabelle die Spalte enthält, die in der ausgewählten Beziehung als Primärschlüssel oder eindeutiger Schlüssel fungiert.

    Primär-/Eindeutige Schlüsselspalten
    Zeigt an, welche Spalte in der ausgewählten Beziehung als Primärschlüssel oder eindeutiger Schlüssel fungiert.

    Identitätskategorie
    Erweitern Sie die Ansicht, um die Eigenschaftsfelder für Name und Beschreibung anzuzeigen.

    Name
    Zeigt den Namen der Beziehung an. Wenn eine neue Beziehung erstellt wird, erhält sie einen Standardnamen, der auf der Tabelle im aktiven Fenster im Tabellen-Designer basiert. Sie können den Namen jederzeit ändern.

    Description
    Beschreibt die Beziehung. Um eine detailliertere Beschreibung zu erstellen, klicken Sie auf Beschreibung , und klicken Sie anschließend auf die Auslassungspunkte (...) rechts neben dem Eigenschaftenfeld. Dadurch wird ein größerer Bereich verfügbar, in den Sie Text eingeben können.

    Kategorie Tabellen-Designer
    Ausklappen, um Informationen zu Vorhandene Daten bei Erstellung oder Reaktivierung prüfen und Für die Replikation erzwingen anzuzeigen.

    Für Replikation erzwingen
    Gibt an, ob die Einschränkung erzwungen wird, wenn durch den Replikations-Agent in der Tabelle eine INSERT-, ein UPDATE- oder DELETE-Anweisung ausgeführt wird.

    Fremdschlüsseleinschränkung erzwingen
    Gibt an, ob Änderungen der Daten in den Spalten der Beziehung zulässig sind, wenn die Integrität der Fremdschlüsselbeziehung durch diese Änderungen aufgehoben werden. Wählen Sie Ja aus, um solche Änderungen nicht zuzulassen, und wählen Sie Nein aus, um sie zuzulassen.

    INSERT und UPDATE Spezifikationskategorie
    Erweitern Sie diese Option, um Informationen zur Löschregel und zur Aktualisierungsregel für die Beziehung anzuzeigen.

    Regel löschen
    Gibt an, was geschehen soll, wenn ein Benutzer versucht, eine Zeile mit Daten zu löschen, die Teil einer Fremdschlüsselbeziehung ist.

    • Keine Aktion Eine Fehlermeldung teilt dem Benutzer mit, dass der Löschvorgang nicht zulässig ist und das DELETE Rollback ausgeführt wird.

    • Kaskadierung Löscht alle Zeilen, die Daten enthalten, die an der Fremdschlüsselbeziehung beteiligt sind. Geben Sie CASCADE nicht an, wenn die Tabelle in eine Mergeveröffentlichung einbezogen werden soll, bei der logische Datensätze verwendet werden.

    • NULL festlegen Legt den Wert auf NULL fest, wenn alle Fremdschlüsselspalten der Tabelle NULL-Werte annehmen können.

    • Standard festlegen Legt den Wert auf den für die Spalte definierten Standardwert fest, wenn für alle Fremdschlüsselspalten der Tabelle Standardwerte definiert sind.

    Regel aktualisieren
    Geben Sie an, was geschieht, wenn ein Benutzer versucht, eine Zeile mit Daten zu aktualisieren, die an einer Fremdschlüsselbeziehung beteiligt sind:

    • Keine Aktion Eine Fehlermeldung teilt dem Benutzer mit, dass das Update nicht zulässig ist und das UPDATE Rollback ausgeführt wird.

    • Cascade Aktualisiert alle Zeilen, die Daten enthalten, die Teil der Fremdschlüsselbeziehung sind. Geben Sie CASCADE nicht an, wenn die Tabelle in eine Mergeveröffentlichung einbezogen werden soll, bei der logische Datensätze verwendet werden.

    • NULL festlegen Legt den Wert auf NULL fest, wenn alle Fremdschlüsselspalten der Tabelle NULL-Werte annehmen können.

    • Standard festlegen Legt den Wert auf den für die Spalte definierten Standardwert fest, wenn für alle Fremdschlüsselspalten der Tabelle Standardwerte definiert sind.

  4. Klicken Sie im Menü Datei auf Speichern > Tabellenname.

Verwenden von Transact-SQL

So ändern Sie einen Fremdschlüssel

Um eine FOREIGN KEY-Einschränkung mit Transact-SQL zu ändern, müssen Sie zuerst die vorhandene FOREIGN KEY-Einschränkung löschen und sie dann mit der neuen Definition neu erstellen. Weitere Informationen finden Sie unter Fremdschlüsselbeziehungen löschen und Fremdschlüsselbeziehungen erstellen.