
A példához szükséges a SampleDatabase09 adatbázis, melyet a mellékelt SampleDatabase09.sql lefuttatásával hozhatunk létre. A SampleDatabase09.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 sysobjects rendszertábla a rendszer objektumait definiáló információkat tartalmazza. Ezek az objektumok lehetnek megszorítások, táblák, tárolt eljárások, vagy akár szerepek.
A sorozat korábbi cikkeiben szinte valamennyi példában említettük, hiszen néhány más rendszertáblában elhelyezett bejegyzés hatással volt a sysobjects rendszertáblára is. A különböző rendszertáblákban megjelenő objektumok általában hivatkoztak valamilyen főobjektumra a sysobjects táblából, annak azonosítóját felhasználva.
Lássuk, milyen oszlopai vannak a rendszertáblának:
| Sorszám |
Oszlop neve |
Típusa |
Leírás |
| 1 |
name |
sysname |
Az objektum neve. |
| 2 |
id |
int |
Az objektum azonosítója. |
| 3 |
xtype |
char(2) |
Az objektum típusa. A cikk későbbi szakaszában kerül tárgyalásra. |
| 4 |
uid |
smallint |
Az objektum tulajdonosának azonosítója. |
| 5 |
info |
smallint |
Fenntartott. |
| 6 |
status |
int |
Fenntartott. |
| 7 |
base_schema_ver |
int |
Fenntartott. |
| 8 |
replinfo |
int |
Fenntartott. |
| 9 |
parent_obj |
int |
Az objektum szülő-objektumának azonosítója (például trigger esetén a tábla). |
| 10 |
crdate |
datetime |
Az objektum létrehozásának ideje. |
| 11 |
ftcatid |
smallint |
Az objektumnak az SQL Server ún. full-text rendszerében megtalálható azonosítója. |
| 12 |
schema_ver |
int |
Séma azonosító, mely növekszik eggyel, ha megváltozik egy tábla sémája. |
| 13 |
stats_schema_ver |
int |
Fenntartott. |
| 14 |
type |
char(2) |
Az objektum típusa. A cikk későbbi szakaszában kerül tárgyalásra. |
| 15 |
userstat |
smallint |
Fenntartott. |
| 16 |
sysstat |
smallint |
Belső státusz-információ. |
| 17 |
indexdel |
smallint |
Fenntartott. |
| 18 |
refdate |
datetime |
Fenntartott. |
| 19 |
version |
int |
Fenntartott. |
| 20 |
deltrig |
int |
Fenntartott. |
| 21 |
instrig |
int |
Fenntartott. |
| 22 |
updtrig |
int |
Fenntartott. |
| 23 |
seltrig |
int |
Fenntartott. |
| 24 |
category |
int |
Fenntartott. |
| 25 |
cache |
smallint |
Fenntartott. |
A type oszlopokban szereplő értékek 1-, illetve 2-betűs rövidítések, melyek az objektum típusát azonosítják. Ezeket foglalja össze a következő táblázat:
| Típus-azonosító |
Jelentés |
| C |
CHECK megszorítás. |
| D |
DEFAULT megszorítás. |
| F |
Idegen kulcs megszorítás. |
| FN |
Skaláris függvény. |
| IF |
INLINE tábla függvény. |
| K |
PRIMARY KEY vagy UNIQUE megszorítás. |
| L |
LOG. |
| P |
Tárolt eljárás. |
| R |
Szerep. |
| RF |
Replikációs szűrő tárolt eljárás. |
| S |
Rendszertábla. |
| TF |
Tábla függvény. |
| TR |
Trigger. |
| U |
Felhasználói tábla. |
| V |
Nézet. |
| X |
Kiterjesztett tárolt eljárás. |
A mellékelt példaprogram bemutatja, hogyan kerül új bejegyzés a sysobjects rendszertáblába. Ez akkor következik be, amikor manuálisan, vagy – mint jelen esetben programból – létrehozunk egy táblát, vagy tárolt eljárást. Ezt a programban a következőképpen tehetjük meg: a táblázat létrehozásához nyomjuk le az „Új tábla létrehozása” feliratú gombot. A gomb lenyomásakor végrehajtódik egy tárolt eljárás, mely a mellékelt sql script lefuttatásakor kerül az adatbázisba, és CreateTable néven találhatjuk meg. Eredményeképpen létrejön egy Table1 nevű tábla. A sysobjects rendszertáblába a következő bejegyzések kerülnek, amikor az adatbázisba bekerül a három tárolt eljárás, és a Table1 tábla. Az adatok közül elhagytuk az utolsó oszlopokat:
| 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
| CreateTable |
1977058079 |
P |
1 |
0 |
1073741824 |
0 |
0 |
0 |
| DropTable |
1993058136 |
P |
1 |
0 |
1073741824 |
0 |
0 |
0 |
| GetCount |
2009058193 |
P |
1 |
0 |
1073741824 |
0 |
0 |
0 |
| Table1 |
2041058307 |
U |
1 |
2 |
1073741824 |
0 |
0 |
0 |
Az adatok másik fele:
| 10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
| 2003.01.11 1:07 |
0 |
0 |
0 |
P |
0 |
4 |
0 |
2003.01.11 1:07 |
| 2003.01.11 1:07 |
0 |
0 |
0 |
P |
0 |
4 |
0 |
2003.01.11 1:07 |
| 2003.01.11 1:07 |
0 |
0 |
0 |
P |
0 |
4 |
0 |
2003.01.11 1:07 |
| 2003.01.11 1:41 |
0 |
0 |
0 |
U |
1 |
67 |
0 |
2003.01.11 1:41 |
A „Tábla törlése” feliratú gombot megnyomva a létrehozott tábla törölhető, minek következtében a két imént létrejött rekord törlődik a sysobjects táblából. A törlést a létrehozáskor az adatbázisba bekerült DropTable nevű tárolt eljárás végzi el.