HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

A sysindexkeys rendszertábla


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

Példaprogram letöltése

10432 bájt

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ó DataGrid 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 alkalmazásban a BuildInfo belső metódusban végezzük el az alsó DataGrid kontrol adatforrásául szolgáló DataTable objektum induláskori létrehozását, valamint műveletvégzés utáni frissítését. Frissítéskor töröljük a régi adatokat:
private int BuildInfo()
{
  int res = 0;
  if (infoTable != null)
  {
    infoTable.Clear();       
  }
Induláskor létrehozzuk a táblát:
else
{
  infoTable = new DataTable();
  DataColumn dc1 = new DataColumn("OBJECT_NAME", Type.GetType("System.String"));
  DataColumn dc2 = new DataColumn("OBJECT_ID", Type.GetType("System.String"));
  infoTable.Columns.Add(dc1);
  infoTable.Columns.Add(dc2);
}
A feltöltéskor kiolvassuk a sysobjects rendszertábla táblaobjektumait azonosítóikkal és beöltjük a táblába:
General.CommandText = "SELECT NAME, ID FROM SYSOBJECTS WHERE (ID = '2009058193') OR (ID = '1977058079')";
SqlDataReader r1 = General.ExecuteReader();
while (r1.Read())
{
  dr=infoTable.NewRow();
  dr["OBJECT_NAME"] = r1.GetSqlString(0);
  dr["OBJECT_ID"] = r1.GetValue(1).ToString();
  infoTable.Rows.Add(dr); 
  }
  r1.Close();
Majd kiolvassuk a sysindexes rendszertábla Products és Orders táblákhoz tartozó indexeit azonosítóikkal, és betöltjük a táblába:
General.CommandText = "SELECT NAME, INDID FROM SYSINDEXES WHERE (ID = '2009058193') OR (ID = '1977058079')";
SqlDataReader r2 = General.ExecuteReader();
while (r2.Read())
{
  dr=infoTable.NewRow();
  dr["OBJECT_NAME"] = r2.GetSqlString(0);
  dr["OBJECT_ID"] = r2.GetValue(1).ToString();
  infoTable.Rows.Add(dr); 
}
r2.Close();
...
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

Cikksorozat

#IDKategóriaCikk címeSorozat
1621DelphiMySQL szerverek elérése Delphi-ből1. rész
1632DelphiMySQL szerverek elérése Delphi-ből2. rész
1641DelphiMySQL szerverek elérése Delphi-ből3. rész
1649DelphiMySQL szerverek elérése Delphi-ből4. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 49. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |