|
|
A syscolumns rendszertábla
MS SQL Server rendszertáblái 1. rész
|
|
Példaprogram letöltése
9278 bájt
|
Valószínűleg minden MS SQL Server-t használó fejlesztőnek feltűnt, hogy már az adatbázisok létrehozásakor számtalan tábla részévé válik az adatbázisnak. A látszólag funkció nélküli táblák azonban fontos relációs adattáblák, melyekben valamennyi, a szerver működéséhez szükséges információ megtalálható. Cikksorozatunk a minden adatbázisban létrejövő rendszertáblák funkcióinak, tartalmának bemutatását tűzte ki célul. Ez a cikkünk a syscolumns táblával foglalkozik részletesen.

A példához szükséges a SampleDatabase01 adatbázis, melyet a mellékelt SampleDatabase01.sql lefuttatásával hozhatunk létre. A SampleDatabase01.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.
Általában nem kerül sor arra, hogy a rendszertáblákat közvetlenül, vagyis a felhasználók, illetve alkalmazások által módosítsuk, ám bizonyos esetekben nem árt tudni, milyen információt tartalmaznak.
Bemutatandó táblánk a syscolumns rendszertábla, mely a rendszerben kezelt valamennyi adattábla, illetve nézettábla valamennyi oszlopáról tartalmaz egy-egy bejegyzést. Az egyes sorok az adott oszlop típusát, valamint más táblákban való viselkedését adják meg, illetve található egy sor minden tárolt eljárásbeli paraméterhez. Lássuk sorban az egyes oszlopokat.
| Sorszám |
Oszlopnév |
Típus |
Leírás |
| 1 |
name |
sysname |
Az adott oszlop vagy paraméter neve. |
| 2 |
id |
int |
A tábla objektum-azonosítója, melyhez az oszlop tartozik, vagy annak a tárolt eljárásnak az azonosítója, melynek a paraméter az argumentuma. |
| 3 |
xtype |
tinyint |
Fizikai tárolási típus. Külső kulcs a systypes rendszertáblából. |
| 4 |
typestat |
tinyint |
Belső használatú, nem dokumentált. |
| 5 |
xusertype |
smallint |
A felhasználó által definiált típusok azonosítója. |
| 6 |
length |
smallint |
A fizikai tárolási méret. Külső kulcs a systypes rendszertáblából. |
| 7 |
xprec |
tinyint |
Belső használatú, nem dokumentált. |
| 8 |
xscale |
tinyint |
Belső használatú, nem dokumentált. |
| 9 |
colid |
smallint |
Oszlop-, vagy paraméterazonosító. |
| 10 |
xoffset |
smallint |
Belső használatú, nem dokumentált. |
| 11 |
bitpos |
tinyint |
Belső használatú, nem dokumentált. |
| 12 |
reserved |
tinyint |
Belső használatú, nem dokumentált. |
| 13 |
colstat |
smallint |
Belső használatú, nem dokumentált. |
| 14 |
cdefault |
int |
Az oszlopra alapértelmezett érték beállításakor annak azonosítója. |
| 15 |
domain |
int |
Az oszlopra „rule”-t, vagy CHECK megszorítást megadva ezek azonosítója. |
| 16 |
number |
smallint |
Eljárás-csoportok esetén az aleljárások száma. 0, amennyiben nincsenek ilyen eljárások. |
| 17 |
colorder |
smallint |
Belső használatú, nem dokumentált. |
| 18 |
autoval |
varbinary(255) |
Belső használatú, nem dokumentált. |
| 19 |
offset |
smallint |
Meghatározza, hogy az adott oszlop hányadik a sorban (rekordban). Negatív értékű, ha a sor változó oszlopszámú. |
| 20 |
status |
tinyint |
Értéke egy bitsorozat, mely leírja egy tulajdonságát az oszlopnak vagy paraméternek. Értékei: 0x08: Az oszlopban megengedett a null érték. 0x40: A paraméter OUTPUT paraméter. 0x80: Az oszlop IDENTITY oszlop. |
| 21 |
type |
tinyint |
Fizikai tárolási típus. Külső kulcs a systypes rendszertáblából. |
| 22 |
usertype |
smallint |
A felhasználó által definiált típusok azonosítója. Külső kulcs a systypes rendszertáblából. |
| 23 |
printfm |
varchar(255) |
Belső használatú, nem dokumentált. |
| 24 |
prec |
smallint |
Pontosság az adott oszlopban. |
| 25 |
scale |
int |
Skála az adott oszlophoz. |
| 26 |
iscomputed |
int |
A flag megadja, hogy az adott oszlop szerepel-e lekérdezés COMPUTE záradékában. 0: nem szerepel 1: szerepel |
| 27 |
isoutparam |
int |
A flag megadja, hogy a paraméter OUTPUT paraméter, vagy nem. 0: nem 1: igen |
| 28 |
isnullable |
int |
A flag megadja, hogy az oszlop megengedhet-e null értéket. 0: nem 1: igen |
A mellékelt példaprogram bemutatja, hogyan kerül új bejegyzés a syscolumns 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 CreateNewTable néven találhatjuk meg. Eredményeképpen létrejön egy Table1 nevű tábla. A létrehozott tábla két oszlopot tartalmaz, így a syscolumns rendszertáblába két új sor kerül. Az eredményről magunk is meggyőződhetünk, ha megkeressük a vizuális komponensben az alábbi két sort, ahol a 28 darab oszlopot a megfelelő számok jelentik.
| 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
| ID |
1525580473 |
56 |
1 |
56 |
4 |
10 |
0 |
1 |
4 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
NULL |
2 |
0 |
56 |
7 |
NULL |
10 |
0 |
0 |
0 |
0 |
| Name |
1525580473 |
167 |
3 |
167 |
50 |
0 |
0 |
2 |
-1 |
0 |
0 |
0 |
0 |
0 |
0 |
2 |
NULL |
-1 |
16 |
39 |
2 |
NULL |
50 |
NULL |
0 |
0 |
0 |
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 syscolumns 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. A tárolt eljárásoknak nincs paraméterlistája, így azok semmilyen formában nem szerepelnek a táblában. A syscolumns rendszertábla aktuális rekordszámát jelzi a felületen lévő felirat, melynek változásából szintén követhetők a műveletek.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
C# Software Offline 2002 évkönyv 653. 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!
|