Freigeben über


Ändern von Fremdschlüsselbeziehungen

Sie können die Fremdschlüsselseite einer Beziehung in SQL Server 2012 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

  • Vorbereitungen:

    Einschränkungen

    Sicherheit

  • So ändern Sie einen Fremdschlüssel mit:

    SQL Server Management Studio

    Transact-SQL

Vorbereitungen

Einschränkungen

Für die neue Fremdschlüsselspalte und die verknüpfte Primärschlüsselspalte müssen Datentyp und Größe übereinstimmen, 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.

Sicherheit

Berechtigungen

Erfordert die ALTER-Berechtigung für die Tabelle.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von SQL Server Management Studio

So ändern Sie einen Fremdschlüssel

  1. Erweitern Sie im Objekt-Explorer die Tabelle mit dem Fremdschlüssel, und erweitern Sie dann die Option 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. 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.

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

    • Löschen
      Löscht die in der Liste ausgewählte Beziehung ausgewählte Beziehung. Verwenden Sie diese Schaltfläche zum Entfernen der Beziehung, um das Hinzufügen einer Beziehung abzubrechen.

    • Kategorie Allgemein
      Wenn die Kategorie erweitert ist, werden Vorhandene Daten bei Erstellung oder Reaktivierung überprüfen und Tabellen- und Spaltenspezifikation angezeigt.

    • Vorhandene Daten bei Erstellung oder Reaktivierung überprüfen
      Ü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
      Wenn die Kategorie erweitert ist, wird angezeigt, welche Spalten aus welchen Tabellen als Fremdschlüssel, Primärschlüssel oder eindeutiger Schlüssel in der Beziehung fungieren. Um diese Werte zu bearbeiten oder zu definieren, klicken Sie rechts neben dem Eigenschaftenfeld auf die Schaltfläche mit den Auslassungspunkten ().

    • 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.

    • Primary/Unique Schlüsselbasistabelle
      Zeigt an, welche Tabelle die Spalte enthält, die in der ausgewählten Beziehung als Primärschlüssel oder eindeutiger Schlüssel fungiert.

    • Primary/Unique Schlüsselspalten
      Zeigt an, welche Spalte in der ausgewählten Beziehung als Primärschlüssel oder eindeutiger Schlüssel fungiert.

    • Kategorie Identität
      Wenn die Kategorie erweitert ist, werden die Eigenschaftenfelder für Name und Beschreibung angezeigt.

    • 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.

    • Beschreibung
      Beschreibt die Beziehung. Um eine detailliertere Beschreibung zu erstellen, klicken Sie auf Beschreibung, und klicken Sie dann auf die Auslassungspunkte (...) rechts neben dem Eigenschaftenfeld. Dadurch wird ein größerer Bereich bereitgestellt, in den Text geschrieben werden kann.

    • Kategorie Tabellen-Designer
      Wenn die Kategorie erweitert ist, werden Informationen über Vorhandene Daten bei Erstellung oder Reaktivierung überprüfen und Für Replikation erzwingen angezeigt.

    • 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.

    • Kategorie INSERT- und UPDATE-Spezifikation
      Wenn die Kategorie erweitert ist, werden Informationen über Regel löschen und Regel aktualisieren für die Beziehung angezeigt.

    • 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 unzulässig ist und ein Rollback für die DELETE-Anweisung durchgeführt wurde.

      • Löschweitergabe Löscht alle Zeilen, die Daten enthalten, die Teil der Fremdschlüsselbeziehung sind. Geben Sie CASCADE (Löschweitergabe) nicht an, wenn die Tabelle in eine Mergeveröffentlichung eingeschlossen sein wird, die logische Datensätze verwendet.

      • 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 In einer Fehlermeldung wird dem Benutzer mitgeteilt, dass das Update unzulässig ist und ein Rollback für die UPDATE-Anweisung ausgeführt wird.

      • Überlappend Aktualisiert alle Zeilen, die Daten enthalten, die an der Fremdschlüsselbeziehung beteiligt sind. Geben Sie CASCADE (Überlappend) nicht an, wenn die Tabelle in eine Mergeveröffentlichung eingeschlossen sein wird, die logische Datensätze verwendet.

      • 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 table name speichern.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung 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 Löschen von Primärschlüssel-Fremdschlüssel-Beziehungen und Erstellen von Fremdschlüssel-Beziehungen.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]