Scenariusz:
Utworzyłeś już dwie tabele dbo.Customer i dbo.Orders. Klucz podstawowy jest tworzony na kolumnie CustomerId w tabeli dbo.Customer.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 )
Musisz zmienić tabelę dbo.Orders i dodać ograniczenie klucza obcego dla CustomerId z dbo.Customer.
Rozwiązanie:
Ponieważ tabele są już obecne, poniższy skrypt może być użyty do zmiany tabeli dbo.Orders i dodania ograniczenia klucza obcego.Jeśli kolumna już istnieje w drugiej tabeli, na której chcesz utworzyć ograniczenie klucza obcego, jesteś dobrze uruchomić poniższy skrypt. Ponieważ nie mamy kolumny w tabeli, najpierw dodamy kolumnę CustomerId w tabeli dbo.Orders. W naszym przypadku kolumna Nazwa nie musi być zgodna z pierwszą kolumną tabeli 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)
Utwórz ograniczenie klucza obcego w kolumnach złożonych Poniższy skrypt może służyć do tworzenia ograniczenia klucza obcego dla kolumn złożonych.
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 )
Kolumny już istnieją w obu tabelach, więc nie musimy dodawać kolumn do drugiej tabeli. Musimy tylko utworzyć ograniczenie klucza obcego. Poniższy skrypt może być użyty do utworzenia ograniczenia klucza obcego dla kolumn złożonych.
Alter table dbo.Orders Add Constraint Fk_Order_Customer_FName_SSN FOREIGN KEY (FirstName,SSN) REFERENCES dbo.Customer(FName,SSN)
Napiszesz składnię tabeli
Zmień tabelę dbo.NazwaTwojejTabeliAdd Constraint Ograniczenie_NazwaKlucz obcy (kolumna1FromTableName,Column2FromTable) Referencje dbo.YourFirstTable(Column1FromPrimaryKey)
Kolumna2FromPrimaryKey Demo :Jak dodać ograniczenie klucza obcego do istniejącej tabeli w SQL Server