LOGO

LOGO
LOGO
ads header

Breaking News

FOREIGN KEY OLUŞTURMA (VERİ BÜTÜNLÜĞÜ SAĞLAMA)

YABANCI BIR ANAHTAR, iki tabloyu birbirine bağlamak için kullanılan bir anahtardır.
FOREIGN KEY, başka bir tablodaki TEMEL ANAHTARINA başvuran bir tablodaki bir alan (veya alanların toplanması) 'dir.
Yabancı anahtar içeren tabloya alt tablo denir ve aday anahtarı içeren tabloya, başvurulan veya üst tablo denir.
Aşağıdaki iki tabloya bakın

Foreign key olarak kullanılacak tablo PERSONS tablosunda bulunan PERSONID alanı
USE [DENEME]
GO

/****** Object:  Table [dbo].[PERSONS]    Script Date: 13.07.2017 00:14:31 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[PERSONS](
[PERSONID] [int] IDENTITY(1,1) NOT NULL,
[ADI] [nchar](100) NULL,
 CONSTRAINT [PK_PERSONS] PRIMARY KEY CLUSTERED 
(
[PERSONID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]


GO


Foreign key olarak kullanılacak tablo MASTER tablosunda bulunan PERSONID alanına girilen veriler bütünlük sağlanması açısından foreign key oluşturuluyor..

USE [DENEME]
GO

/****** Object:  Table [dbo].[MASTER]    Script Date: 13.07.2017 00:15:36 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[MASTER](
[ID] [int] IDENTITY(1,1) NOT NULL,
[PERSONID] [int] NULL,
[ACIKLAMA] [nchar](100) NULL,
[MIKTAR] [numeric](18, 2) NULL,
 CONSTRAINT [PK_MASTER] PRIMARY KEY CLUSTERED 
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[MASTER]  WITH CHECK ADD  CONSTRAINT [FK_MASTER_MASTER_PERSONID] FOREIGN KEY([PERSONID])
REFERENCES [dbo].[PERSONS] ([PERSONID])
GO

ALTER TABLE [dbo].[MASTER] CHECK CONSTRAINT [FK_MASTER_MASTER_PERSONID]

GO

https://www.youtube.com/watch?v=TpKcAmaaBts

http://www.ismailgursoy.com.tr/foreign-keys-olusturma/
Burada yeterince anlatılmış..Detaylar açısından..

İşlemin yapılması içinde








Eğer bir tabloya sonradan ekleyecekseniz sonrada ya kod kullanacaksınız veya sql yönetim paneli ile ekleyeceksiniz veya
CREATE TABLE ..... yerine  CREATE alter ile tabloda değişiklik yapacaksınız...

Hiç yorum yok