Scenarie:
Du har allerede oprettet to tabeller dbo.Customer og dbo.Orders. Primær nøgle oprettes i kolonnen CustomerId i dbo.Customer-tabel.USE YourDatabaseName GO CREATE TABLE dbo.Customer ( Customerid INT PRIMARY KEY ,FName VARCHAR(100) ,LName VARCHAR(100) ,SSN VARCHAR(10) )
CREATE TABLE dbo.Orders ( OrderId INT Identity(1, 1) ,OrderitemName VARCHAR(50) ,OrderItemAmt INT )
Du skal ændre dbo.Orders-tabellen og tilføje en begrænsning af udenlandsk nøgle for CustomerId fra dbo.Customer.
Løsning:
Da tabellerne allerede er til stede, kan nedenstående script bruges til at ændre dbo. Orders-tabellen og tilføje en begrænsning af fremmednøgle.Hvis kolonnen allerede findes i den anden tabel, som du gerne vil oprette Foreign Key Constraint på, er du godt at køre nedenstående script. Da vi ikke har kolonnen i tabellen, vil vi tilføje CustomerId-kolonnen i dbo.Orders-tabellen først. Kolonnen Navn behøver ikke at stemme overens med første tabelkolonne i vores tilfælde dbo.Customer.CustomerId
--Add new column to Table in case you don't have Alter table dbo.Orders Add CustomerId int --Add Foreign Key Constraint on Existing Table Alter table dbo.Orders Add Constraint Fk_CustomerId Foreign Key(CustomerId) References dbo.Customer(CustomerId)
Opret fremmednøglebegrænsning på sammensatte kolonner Nedenstående script kan bruges til at oprette fremmednøglebegrænsning for sammensatte kolonner.
USE YourDatabaseName GO CREATE TABLE dbo.Customer ( Customerid INT Identity(1,1) ,FName VARCHAR(100) Not Null ,LName VARCHAR(100) ,SSN VARCHAR(10) Not Null, Constraint Pk_FName_SSN Primary Key (FName,SSN) ) CREATE TABLE dbo.Orders ( OrderId INT Identity(1, 1) ,OrderitemName VARCHAR(50) ,OrderItemAmt INT ,FirstName VARCHAR(100), SSN VARCHAR(10) Not Null )
Kolonner findes allerede i begge tabeller, så vi behøver ikke at tilføje kolonner til den anden tabel. Vi behøver kun at skabe Foreign Key Constrain. Nedenstående script kan bruges til at oprette fremmednøglebegrænsning for sammensatte kolonner.
Alter table dbo.Orders Add Constraint Fk_Order_Customer_FName_SSN FOREIGN KEY (FirstName,SSN) REFERENCES dbo.Customer(FName,SSN)
Du vil skrive din syntaks for din tabel
Alter table dbo.YourTableNameAdd Constraint Constraint_NameForeign Key (Column1FromYourTableName,Column2FromYourTable) References dbo.YourFirstTable(Column1FromPrimaryKey,Columnary2From)>
Demo :Sådan tilføjes Foreign Key Constraint til eksisterende tabel i SQL Server