Więzy integralności (spójności ang. Constraints) to zespół reguł, które gwarantują logiczną spójność danych wprowadzanych i przechowywanych w bazie. Zadaniem więzów spójności jest zagwarantowanie tego, aby dane w bazie danych wiernie odzwierciedlały świat rzeczywisty, dla opisu którego baza danych została zaprojektowana. Więzy spójności definiowane są na etapie projektowania bazy danych, tworzone wraz z innymi obiektami, przy tworzeniu bazy. Za ich realizację (przestrzeganie zdefiniowanych przez nie reguł) odpowiada system bazy danych.
Sprawdzanie spójności w bazie danych odbywa się za pomocą zdefiniowania klucza obcego. Więzy możemy zakładać na dwa sposoby. Przy tworzeniu tabeli, oraz nakładając je na już istniejącą tabelę.
W naszym przykładzie utworzymy dwie tabele uczen i klasa.
Na początek tworzymy tabelę klasa do której odwoływać się będą pozostałe tabele.
CREATE TABLE klasa (id_klasy int PRIMARY KEY, nazwa varchar (30));
CREATE TABLE uczen (id_ucznia int PRIMARY KEY, imie varchar (30), nazwisko varchar (30), id_klasy int,
FOREIGN KEY (id_klasy) REFERENCES klasa(id_klasy));
W tym przypadku nie podaliśmy nazwy dla stworzonego klucza obcego, więc SQL Server wygeneruje nazwę automatycznie, np. FK_uczen_id_klasy.
CREATE TABLE uczen (id_ucznia int PRIMARY KEY, imie varchar (30), nazwisko varchar (30), id_klasy int,
FOREIGN KEY (id_klasy) REFERENCES klasa(id_klasy));
Dodawanie klucza obcego podczas aktualizowania tabeli
Tworzymy dwie tabele: uczen i klasa.
CREATE TABLE uczen (id_ucznia int PRIMARY KEY, imie varchar (30), nazwisko varchar (30), id_klasy int);
CREATE TABLE klasa (id_klasy int PRIMARY KEY, nazwa varchar (30));
Teraz zaktualizujemy tabelę uczeń dodając klucz obcy na kolumnie id_klasy.
ALTER TABLE uczen ADD FOREIGN KEY (id_klasy) REFERENCES klasa(id_klasy);
ALTER TABLE uczen ADD CONSTRAINT fk_uczen_idklasy FOREIGN KEY (id_klasy) REFERENCES klasa(id_klasy)