sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man lägger till en främmande nyckelbegränsning till en befintlig tabell i SQL Server (T-SQL)

I databastermer, en främmande nyckel är en kolumn som är länkad till en annan tabells primära nyckelfält i en relation mellan två tabeller.

En främmande nyckel är en typ av begränsning, så om du vill skapa en främmande nyckel i SQL Server måste du skapa en främmande nyckel begränsning.

Den här artikeln visar hur man skapar en främmande nyckel-begränsning i SQL Server med hjälp av Transact-SQL.

Exempel

Det enklaste sättet att visa detta är med ett exempel. I det här exemplet använder vi T-SQL för att skapa en främmande nyckel-begränsning med hjälp av ALTER TABLE uttalande:

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

Detta skapar en relation mellan två tabeller (Albums tabellen och Artists) tabell). Vi gör detta genom att skapa en främmande nyckel-begränsning på Albums tabell. Vi anger att Albums.ArtistId kolumnen är en främmande nyckel till Artists.ArtistId kolumn.

Detta förutsätter uppenbarligen att de två tabellerna existerar. Om de inte gjorde det skulle vi få ett felmeddelande.

Vi använder också GO som faktiskt inte är en del av T-SQL. Det känns igen av olika verktyg för att signalera slutet på en grupp T-SQL-satser.

Kontrollera resultatet

Du kan kontrollera resultatet genom att köra följande skript:

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

Detta listar de främmande nycklarna i Music databas. Ändra namnet på databasen så att det passar.

Om din databas har för många främmande nycklar kan du alltid begränsa den med en WHERE klausul till den specifika främmande nyckel som du är intresserad av. Du kan också använda jokertecken (* ) om du vill att alla kolumner ska returneras.


  1. Räkna med IF-villkor i MySQL-fråga

  2. Tabellfiltrering i IRI Workbench

  3. Oracle:OALL8 är i ett inkonsekvent tillstånd

  4. Hur man installerar och konfigurerar MySQL på Ubuntu