
A példához szükséges a SampleDatabase02 adatbázis, melyet a mellékelt SampleDatabase02.sql lefuttatásával hozhatunk létre. A SampleDatabase02.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.
Mint a rendszertáblák mindegyikéről, a syscomments rendszertábláról is elmondható és hangsúlyozandó, hogy közvetlenül lehetőleg ne kerüljön sor a módosítására. A rendszer tábláinak manuális módosítása be nem látható következményekkel járhat, a rendszer integritása sérülést szenvedhet, mely végső soron a rendszer működésének zavarait okozhatja.
A syscomments rendszertábla a rendszer dokumentálásában játszik szerepet. A tábla sorai a szabályokra (rules), az alapértelmezett értékekre (defaults), triggerekre, tárolt eljárásokra, nézettáblákra és a CHECK megszorításokra vonatkozóan tartalmaznak bejegyzéseket. Az oszlopok a következők:
| Sorszám |
Oszlop név |
Oszlop típus |
Leírás |
| 1 |
id |
int |
Az objektum azonosítója. |
| 2 |
number |
smallint |
Annak az eljáráscsoportnak a száma, melyben az eljárás megtalálható. Ha nincs csoportban az eljárás, értéke 0. |
| 3 |
colid |
smallint |
Sor szekvencia szám az objektumhoz. |
| 4 |
status |
smallint |
Belső használatú, nem dokumentált. |
| 5 |
ctext |
varbinary(8000) |
Az objektum létrehozásához szükséges SQL utasítás binárisan tárolva. |
| 6 |
texttype |
smalint |
Meghatározza, hogy a bejegyzés felhasználó által, vagy a rendszer által támogatott bejegyzés, vagy titkosított. |
| 7 |
language |
smallint |
Belső használatú, nem dokumentált. |
| 8 |
encrypted |
bit |
Meghatározza, hogy a tárolt eljárás titkosított-e vagy sem. Értéke 0, ha nem és 1, ha igen. |
| 9 |
compressed |
bit |
Meghatározza, hogy a tárolt eljárás tömörített-e vagy sem. 0, ha nem és 1, ha igen. |
| 10 |
text |
nvarchar(4000) |
Az objektumot létrehozó SQL utasítás tárolására. |
Az utolsó, text oszloppal kapcsolatban még érdemes megemlíteni, hogy amely SQL utasítás nem fér ki az adott sorban, a rendszer több sorban is elhelyezheti azt, majd felhasználáskor összeállításáról gondoskodik. Az így maximálisan lefoglalható sorok száma 255.
A mellékelt példában azt modellezzük, hogy miként kerülhet új bejegyzés a syscomments táblába. A SamleDatabase02.sql script lefuttatásakor egy Table1 nevű példatábla is kerül az adatbázisba. A programban létrehozunk egy nézettáblát ehhez a táblához, mellyel kapcsolatos információk egy sor erejéig bekerülnek a syscomments rendszertáblába.
A program elindítása után a vizuális megjelenítést végző DBGrid komponens a syscomments aktuális állapotát tükrözi. Az „Új nézet létrehozása” feliratú gombbal létrehozhatjuk a már említett, View1 nevet viselő nézettáblát. A nézettábla tartalma megtekinthető a „Nézet” feliratú gomb lenyomása után felbukkanó dialógablakban. A nézettáblát létrehozó SQL utasítás, mely pontosan ebben a formában jelenik meg a syscomments tábla utolsó oszlopában, a következő volt:
DM.spCommand.CommandText := 'CREATE VIEW [View1] AS SELECT ItemName, ItemPrice FROM Table1 WHERE (ItemID >= 1) AND (ItemID <= 5)';
Ahogy látható, egy két-oszlopos nézettáblát hoztunk létre a Table1 táblából, mely az első öt rekordját érinti. A létrehozás után a következő sor kerül a syscomment táblába:
| 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
| 485576768 |
0 |
1 |
2 |
0x4352454154452056494557… |
2 |
0 |
0 |
1 |
CREATE VIEW [View1] AS… |
A programban a „Nézet törlése” feliratú gombbal törölhetjük az általunk létrehozott nézetet, valamint az imént létrejött bejegyzést a syscomments rendszertáblából. A törlést egy DropView nevű tárolt eljárás végzi el, mely az adatbázis-létrehozó script lefuttatásával kerül az adatbázisba és ebben a pillanatban a syscomments táblába is. A DropView tárolt eljárással kapcsolatos bejegyzés a következő:
| 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
| 1993058136 |
1 |
1 |
2 |
0x0A4352454154452050… |
2 |
0 |
0 |
1 |
CREATE PROCEDURE DropView AS… |