Dalam istilah database, kunci asing adalah kolom yang ditautkan ke bidang kunci utama tabel lain dalam hubungan antara dua tabel.
Kunci asing adalah jenis batasan, jadi jika Anda ingin membuat kunci asing di SQL Server, Anda harus membuat batasan kunci asing.
Artikel ini menunjukkan cara membuat batasan kunci asing di SQL Server, menggunakan Transact-SQL.
Contoh
Cara termudah untuk menunjukkan ini adalah dengan sebuah contoh. Dalam contoh ini, kami menggunakan T-SQL untuk membuat batasan kunci asing menggunakan ALTER TABLE
pernyataan:
USE Music; ALTER TABLE Albums ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE CASCADE ON UPDATE CASCADE ; GO
Ini menciptakan hubungan antara dua tabel (Albums
tabel dan Artists)
meja). Kami melakukannya dengan membuat batasan kunci asing di Albums
meja. Kami menetapkan bahwa Albums.ArtistId
kolom adalah kunci asing untuk Artists.ArtistId
kolom.
Ini jelas mengasumsikan bahwa dua tabel ada. Jika tidak, kami akan mendapatkan error.
Kami juga menggunakan GO
yang sebenarnya bukan bagian dari T-SQL. Ini dikenali oleh berbagai utilitas untuk menandakan akhir dari sekumpulan pernyataan T-SQL.
Cek Hasilnya
Anda dapat memeriksa hasilnya dengan menjalankan skrip berikut:
USE Music; SELECT name, type_desc, delete_referential_action_desc, update_referential_action_desc FROM sys.foreign_keys; GO
Ini mencantumkan kunci asing di Music
basis data. Ubah nama database yang sesuai.
Jika database Anda memiliki terlalu banyak kunci asing, Anda selalu dapat mempersempitnya dengan WHERE
klausa ke kunci asing tertentu yang Anda minati. Anda juga dapat menggunakan karakter wildcard (*
) jika Anda ingin semua kolom dikembalikan.