Skenario:
Anda telah membuat dua tabel dbo.Customer dan dbo.Orders. Primary Key dibuat pada kolom CustomerId di tabel 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 )
Anda perlu mengubah tabel dbo.Orders dan menambahkan batasan kunci Asing untuk CustomerId dari dbo.Customer.
Solusi:
Karena tabel sudah ada, skrip di bawah ini dapat digunakan untuk mengubah tabel dbo.Orders dan menambahkan batasan Kunci Asing.Jika kolom sudah ada di tabel kedua di mana Anda ingin membuat Batasan Kunci Asing, Anda baik untuk menjalankan skrip di bawah ini. Karena kita tidak memiliki kolom di tabel, kita akan menambahkan kolom CustomerId di tabel dbo.Orders terlebih dahulu. Nama kolom tidak harus sama dengan kolom tabel pertama dalam kasus kami 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)
Membuat Batasan Kunci Asing pada Kolom Komposit Skrip di bawah ini dapat digunakan untuk membuat Batasan Kunci Asing untuk Kolom Komposit.
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 )
Kolom sudah ada di kedua tabel sehingga kita tidak perlu menambahkan kolom ke tabel kedua. Kita hanya perlu membuat Batasan Kunci Asing. Script di bawah ini dapat digunakan untuk membuat Batasan Kunci Asing untuk kolom komposit.
Alter table dbo.Orders Add Constraint Fk_Order_Customer_FName_SSN FOREIGN KEY (FirstName,SSN) REFERENCES dbo.Customer(FName,SSN)
Anda akan menulis sintaks untuk tabel Anda
Alter table dbo.YourTableNameAdd Constraint Constraint_NameForeign Key (Column1FromYourTableName,Column2FromYourTable) Referensi dbo.YourFirstTable(Column1FromPrimaryKey,Column2FromPrimaryKey)
Demo :Bagaimana cara menambahkan Batasan Kunci Asing ke Tabel yang ada di SQL Server