Delphi - A sysindexkeys rendszertábla

MS SQL Server rendszertáblái 8. rész

forráskód letöltése
Cikksorozatunknak ebben a számában a sysindexkeys rendszertáblát ismerhetjük meg, mely valamennyi felhasználói adatbázisban megjelenik annak létrehozása után. A cikkben bemutatjuk a rendszertábla oszlopait, valamint egy példán keresztül szemléltetjük funkcióját, kapcsolatát az adatbázis egy másik rendszertáblájával.
A példához szükséges a SampleDatabase08 adatbázis, melyet a mellékelt SampleDatabase08.sql lefuttatásával hozhatunk létre. A SampleDatabase08.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 sysindexkeys rendszertábla a sysindexes rendszertábla funkcióit egészíti ki olyan szempontból, hogy információkat tartalmaz a kulcsok és indexek oszlopaival kapcsolatban.
A rendszertábla oszlopai a következők:
Oszlop neve Típusa Leírása
id int Tábla azonosítója, melyhez az index, illetve kulcs tartozik.
indid smallint Index azonosítója.
colid smallint Oszlop azonosítója.
keyno smallint Az adott oszlop helye az indexben.
Példánkban a SamleDatabase08.sql parancsállomány lefuttatása után az adatbázisba került két adattáblához (Products és Orders) indexeket hozunk létre a CreateIndex tárolt eljárással, valamint indexeket törlünk a DropIndex tárolt eljárás segítségével, és megfigyeljük, hogyan változik a sysindexkeys rendszertábla tartalma. A rendszertábla adatai közül az alkalmazásban csak a két táblánkra létrehozott indexek és kulcsok adatait jelenítjük meg. A Form két nyomógombjával lehet elvégezni a fenti műveleteket.
A Form ’Rendszertáblák’ feliratú fülén található alsó két DBGrid kontrolban jelenítjük meg az adatbázisban megtalálható objektumok neveit (táblák és indexek) azonosítóikkal, elősegítendő a felső táblázat értelmezését.
Az indexek létrehozásakor és törlésekor frissítjük a TADODataSet objektumok tartalmát (ixSet tartalmazza a sysindexkeys rendszertábla, míg a sysiSet a sysindexes rendszertábla adatait). Létrehozás:
with DM do begin
    CreateIndex.Execute;
    ixSet.Requery;
    sysiSet.Requery;
    ixSet.Close;
    sysiSet.Close;
    ixSet.Open;
    sysiSet.Open;
  end;
...
A törlés:
with DM do begin
    DropIndex.Execute;
    ixSet.Requery;
    sysiSet.Requery;
    ixSet.Close;
    sysiSet.Close;
    ixSet.Open;
    sysiSet.Open;
  end;
...
Az indexek létrehozása után a következő sorok jelennek meg a sysindexkeys rendszertáblában:
ID INDID COLID KEYNO
1977058079 1 1 1
1977058079 2 2 1
2009058193 1 1 1
2009058193 2 1 1
2009058193 3 2 1

MS SQL Server rendszertáblái cikksorozat