
A példához szükséges a SampleDatabase06 adatbázis, melyet a mellékelt SampleDatabase06.sql lefuttatásával hozhatunk létre. A SampleDatabase06.sql script 5. sorában adja meg helyesen a létrehozandó adatbázisfájlok mappájának nevét és elérési útvonalát.
A sysforeignkeys rendszertábla - mint nevéből is kiderül -, az adatbázisban a táblák készítésekor, vagy utólag az ALTER TABLE utasítással létrehozott idegen kulcs megszorításokkal kapcsolatban tartalmaz bejegyzéseket.
Szoros kapcsolatban áll az adatbázis másik rendszertáblájával, a sysobjects táblával, ugyanis a létrehozott idegen kulcs megszorítások először ide kerülnek bejegyzésre egy azonosítóval, mely a megszorításokat azonosítja a sysforeignkeys táblában. Vizsgáljuk meg a tábla oszlopait:
| Sorszám |
Oszlopnév |
Típus |
Leírás |
| 1 |
constid |
int |
Az idegen kulcs megszorítás azonosítója. |
| 2 |
fkeyid |
int |
A tábla azonosítója, melyben a megszorítást deklaráltuk. |
| 3 |
rkeyid |
int |
A tábla azonosítója, melynek PRIMARY KEY megszorítással rendelkező oszlopa idegen kulcs az előző táblában. |
| 4 |
fkey |
smallint |
A tábla oszlopának sorszáma, melyre az idegen kulcs megszorítást deklaráltuk. |
| 5 |
rkey |
smallint |
A tábla oszlopának sorszáma, melyre a megszorításban hivatkozunk. |
| 6 |
keyno |
smallint |
A hivatkozott oszlop sorszáma az oszloplistában. |
Mellékelt alkalmazásunkban nyomon követhetjük, amint egy idegen kulcs megszorítást deklarálva az egyik adattáblában milyen adatok kerülnek be ezzel kapcsolatban a sysforeignkeys rendszertáblába.
A SampleDatabase06.sql script lefuttatása után két tábla kerül az adatbázisba: Products és Orders névvel. A ’Products’ nevű tábla ProductID oszlopára létrehozunk egy PRIMARY KEY megszorítást. A szintén az adatbázisba került ’MakeForeignKey’ tárolt eljárással létrehozhatunk egy FOREIGN KEY megszorítást FK_Orders néven az Orders táblában a Products tábla ProductID oszlopára hivatkozva, a ’DropForeignKey’ tárolt eljárással megszüntethetjük azt.
Az idegen kulcs megszorítást létrehozva a megfelelő bejegyzés létrejön a sysforeignkeys rendszertáblában, mely eddig üres volt, hiszen adatbázisunkban a FK_Orders megszorítás volt az egyetlen.
Az alkalmazás Form-ján megtalálható TTabControl fülein látható egyrészt a két adattábla, hogy követhető legyen, milyen oszlopok vesznek részt a megszorításban, valamint a két érintett rendszertábla, sysobjects és sysforeignkeys.
Az alkalmazás segítségével, az ’Idegen kulcs megszorítás létrehozása az Orders táblában’ feliratú gombra kattintva létrehozható az idegen kulcs megszorítás. A megszorítás törléséhez a megváltozott feliratú gombra kell ugyancsak kattintani.
A megszorítást deklarálva a sysobject táblában egy azonosítót kap a FK_Orders megszorítás, mely azonosítóval megtaláljuk a bejegyzést a sysforeignkeys táblában.
A sysobject táblába került bejegyzés a következő:
| 1 |
2 |
3 |
| FK_Orders |
5575058 |
F |
A második oszlopban megfigyelgető azonosítóval pedig a következő bejegyzés jelenik meg a sysforeignkeys táblában:
| 1 |
2 |
3 |
4 |
5 |
6 |
| 5575058 |
2009058193 |
1977058079 |
2 |
1 |
1 |