Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So fügen Sie einer vorhandenen Tabelle in SQL Server (T-SQL) eine Fremdschlüsseleinschränkung hinzu

In Datenbankbegriffen ein Fremdschlüssel ist eine Spalte, die mit dem Primärschlüsselfeld einer anderen Tabelle in einer Beziehung zwischen zwei Tabellen verknüpft ist.

Ein Fremdschlüssel ist eine Art Einschränkung. Wenn Sie also einen Fremdschlüssel in SQL Server erstellen möchten, müssen Sie eine Fremdschlüssel-Einschränkung erstellen.

Dieser Artikel zeigt, wie Sie mithilfe von Transact-SQL eine Fremdschlüsseleinschränkung in SQL Server erstellen.

Beispiel

Am einfachsten lässt sich dies anhand eines Beispiels demonstrieren. In diesem Beispiel verwenden wir T-SQL, um mithilfe von ALTER TABLE eine Fremdschlüsseleinschränkung zu erstellen Aussage:

USE Music;
ALTER TABLE Albums
  ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId)     
      REFERENCES dbo.Artists (ArtistId)
      ON DELETE CASCADE    
      ON UPDATE CASCADE
  ;
GO

Dadurch wird eine Beziehung zwischen zwei Tabellen (den Albums Tisch und die Artists) Tisch). Dazu erstellen wir eine Fremdschlüsseleinschränkung für die Albums Tisch. Wir geben die Albums.ArtistId an Spalte ist ein Fremdschlüssel für die Artists.ArtistId Spalte.

Dies setzt natürlich voraus, dass die beiden Tabellen existieren. Andernfalls erhalten wir eine Fehlermeldung.

Wir verwenden auch GO was eigentlich nicht Teil von T-SQL ist. Es wird von verschiedenen Dienstprogrammen erkannt, um das Ende eines Stapels von T-SQL-Anweisungen zu signalisieren.

Überprüfen Sie das Ergebnis

Sie können das Ergebnis überprüfen, indem Sie das folgende Skript ausführen:

USE Music;
SELECT 
    name,
    type_desc,
    delete_referential_action_desc,
    update_referential_action_desc
FROM sys.foreign_keys;
GO

Dies listet die Fremdschlüssel in der Music auf Datenbank. Ändern Sie den Namen der Datenbank entsprechend.

Wenn Ihre Datenbank zu viele Fremdschlüssel hat, können Sie sie immer mit einem WHERE eingrenzen -Klausel zu dem spezifischen Fremdschlüssel, an dem Sie interessiert sind. Sie können auch das Platzhalterzeichen (* ), wenn alle Spalten zurückgegeben werden müssen.