Delphi - A systypes rendszertábla

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

forráskód letöltése
Cikkünkben a systypes rendszertáblával ismerkedhetünk meg, mint a felhasználói adatbázisok mindegyikében megtalálható adattáblával. Bemutatjuk, milyen oszlopokkal rendelkezik a systypes tábla, és hogy miként kerülhet bejegyzés a táblába. A tábla kapcsán bemutatjuk két rendszerfüggvény használatát is, melyek segítségével új adatokat tehetünk a rendszertáblába.
A példához szükséges a SampleDatabase13 adatbázis, melyet a mellékelt Run_script.cmd BATCH állomány lefuttatásával hozhatunk létre úgy, hogy első parancssori argumentumként megadjuk a szerver nevét, melyen az adatbázist létre kívánjuk hozni, második argumentumként megadjuk az SQL állomány nevét. Példa: C:\Run_script.cmd <szervernév> SampleDatabase13.sql. A SampleDatabase12.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 systypes rendszertábla
A systypes rendszertáblában tárolódik a rendszer által támogatott valamennyi adattípus, beleértve a felhasználók által deklarált adattípusokat is. Amennyiben a MASTER táblában hoz létre a felhasználó egy saját adattípust, akkor az adott típus a felhasználói adatbázisok mindegyikében elérhető és használható lesz.
A systypes rendszertábla oszlopainak ismertetése során kiderül, hogy milyen adatokat is tárol a rendszertábla egy-egy adattípusról:
Oszlop megnevezése Típusa Leírása
name sysname Az adattípus neve.
xtype tinyint A beépített adattípus azonosítója, melyből a felhasználói típus származik.
status tinyint Belső használatra.
xusertype smallint Kiterjesztett felhasználói típus.
length smallint Az adattípus fizikai hossza.
xprec tinyint Belső pontosság (lekérdezéshez nem használható).
xscale tinyint Belső skála (lekérdezéshez nem használható).
tdefault int Annak a tárolt eljárásnak az ID-je, mely az adott típussal kapcsolatos integritást ellenőrzi.
domain int Annak a tárolt eljárásnak az ID-je, mely az adott típussal kapcsolatos integritást ellenőrzi.
uid smallint A típust létrehozó felhasználó azonosítója.
usertype smallint A felhasználói típus azonosítója.
variable bit Változó hosszúságú adattípus esetén 1; egyébként 0.
allownulls bit Jelzi, hogy az adott típus értéke alapértelmezésben lehet-e NULL. A tábla létrehozásakor természetesen ez az érték felülírható.
type tinyint A fizikai adattípus tárolási jellemzőire utaló adat.
printfmt varchar(255) Fenntartott.
prec smallint A típusra megadott pontosság.
scale tinyint A típusra megadott skála.
A systypes rendszertábla kapcsán két rendszerfüggvényt említhetünk meg. Ezek arra szolgálnak, hogy saját adattípust adjunk az adatbázishoz, illetve töröljünk onnan. Saját felhasználói típusokat elsősorban akkor hozunk létre, ha biztosítani szeretnénk, hogy valamely két adat típusa biztosan azonos legyen.
sp_addtype rendszerfüggvény
A függvénnyel készíthetünk egy saját adattípust. Szintaxisa:
sp_addtype [@typename], [@phystype], [@nulltype], [@owner]
Paraméter Típus Megjegyzés
@typename nvarchar(128) A létrehozandó saját típus neve.
@ phystype nvarchar(128) Az SQL Server egy beépített típusának, vagy egy saját típusnak a neve, mely a saját típus ős-típusa lesz.
@nulltype varchar(8) Jelzi, hogy lehet-e NULL az adott típus értéke. Értékei lehetnek: ’NULL’,’NOTNULL’,’NONULL’.
@owner nvarchar(128) A típus létrehozójának neve.
Használata például példánkban:
exec sp_addtype ’zipcode’,’varchar(4)’,’NULL’
A létrehozott típust ezután felhasználhatjuk deklarációkban.
sp_droptype rendszerfüggvény
A függvény segítségével törölhetünk egy felhasználó által létrehozott típust a rendszertípusok közül. Szintaxisa:
sp_droptype [@typename]
A függvény egyetlen paraméterében meg kell adni a törlendő típus nevét.
Használata:
exec sp_droptype ’zipcode’
Alkalmazás
Példánkban egy ZIPCODE nevű saját típust hozhatunk létre FELHASZNÁLÓI TÍPUSOK fül alatt elérhető gombbal, valamint egy Table1 adattáblát, melynek ZipCode nevű oszlopa bír ezzel a típussal.
CREATE TABLE [Table1] (
	[ID] [int] NOT NULL,
	[Department] [varchar] (50) NOT NULL,
	[ZipCode] [zipcode] NOT NULL	
  ) ON [PRIMARY]
A típus létrehozása után a típushoz kapcsolódó bejegyzés megjelenik a systypes rendszertáblában, valamint a SYSTYPES RENDSZERTÁBLA fül alatt elérhető DBGrid kontrolban.
A típus a létrehozó gomb alatt található ’Típus törlése’ feliratú gombbal törölhető.

MS SQL Server rendszertáblái cikksorozat