Delphi - Alapértelmezett értékek megadása

Transact SQL 19. rész

forráskód letöltése
Hasznos lehetőség, hogy az oszlopokra vonatkozóan alapértelmezett értékeket is megadhatunk. Ezek elsősorban akkor hasznosak, amikor az adott oszlop nem kap értéket. Az alapértelmezett értékek megadási módjáról lesz szó ebben a részben.
Az elsődleges szabály alapértelmezett értékek létrehozásánál, hogy a megadott konstans érték adattípusának kompatibilisnek kell lennie az oszlop, vagy a felhasználó által definiált adattípussal, valamint az esetlegesen meglévő szabályoknak is meg kell felelnie.
01.sql
Létrehozzuk a teszt adatbázist.
02.sql
Létrehozunk egy táblát három mezővel. Mindhárom mezőhöz létre fogunk hozni egy-egy alapértelmezett értéket.
03.sql, 04.sql, 05.sql
Létrehozzuk mindhárom szabályt.Az A mező egész típusú, az alapértelmezett értéke 100 lesz. A B mező karakteres típusú, az alapértelmezett értéke ’Animare’ lesz. A C mező dátum/idő típusú, az alapértelmezett értéke pedig az aktuális rendszeridő lesz.
CREATE DEFAULT DefA AS 100
CREATE DEFAULT DefB AS 'Animare'
CREATE DEFAULT DefC AS GetDate()
Mint látható, az alapértelmezett értékek létrehozása nagyon egyszerű, viszont ezzel még nem adtuk meg, hogy melyik oszlopra, vagy adattípusra akarjuk alkalmazni. Ez történik meg a 06.sql-ben.
06.sql
Az alapértelmezett értéket több oszlophoz vagy felhasználói adattípushoz is hozzárendelhetjük az sp_bindefault eljárással. Első paraméterként az alapértelmezett érték nevét kell megadni, majd az objektum nevét, amihez rendelni szeretnénk. Ha az objektum nevét nem előzi meg a tábla neve (mint az alábbi példában), akkor azt felhasználói adattípusként próbálja értelmezni.
EXEC sp_bindefault DefA, 'Table1.A'
EXEC sp_bindefault DefB, 'Table1.B'
EXEC sp_bindefault DefC, 'Table1.C'
Egy oszlophoz értelemszerűen csak egy alapértelmezett értéket rendelhetünk.
Hogy lássuk mindent jól csináltunk-e felveszünk néhány rekordot a táblába úgy, hogy csak egy-egy mező értékét adjuk meg. Azoknak a mezőknek az értéke az alapértelmezett értéket fogja felvenni, melyeknek nem adtunk értéket.
07.sql
Ha meg akarjuk szüntetni a kapcsolatot az alapértelmezett érték és a tábla oszlopa, illetve a felhasználói adattípus között, akkor ezt az sp_unbindefault eljárással tehetjük meg. Paraméterként annak az objektumnak a nevét kell megadni, amellyel a kapcsolatot meg szeretnénk szüntetni. Az alapértelmezett értéket törölni a DROP DEFAULT utasítással tudjuk. Az utasítás után egyszerűen meg kell adni az alapértelmezett érték nevét. Csak akkor tudjuk törölni, ha már nincs egyetlen objektumhoz sem kapcsolva.
EXEC sp_unbindefault 'Table1.A'
EXEC sp_unbindefault 'Table1.B'
EXEC sp_unbindefault 'Table1.C'
DROP DEFAULT DefA
DROP DEFAULT DefB
DROP DEFAULT DefC
08.sql
Megszüntetjük a teszt adatbázist.

Transact SQL cikksorozat