C# - 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

Transact SQL Referencia - Transact SQL 1. rész
Transact SQL további belső változói - Transact SQL 2. rész
Dátumkezelés a Transact SQL-ben - Transact SQL 3. rész
Sztringkezelés a Transact SQL-ben - Transact SQL 4. rész
Folyamatvezérlés eszközei a Transact SQL-ben - Transact SQL 5. rész
Összesítő függvények - Transact SQL 6. rész
Adatbázisok létrehozása, törlése - Transact SQL 7. rész
Adatbázis módosítás lehetőségei - Transact SQL 8. rész
Táblák létrehozása - Transact SQL 9. rész
Táblák módosítása, törlése - Transact SQL 10. rész
Rendszer funkciók - Transact SQL 11. rész
Adatkonvertálási lehetőségek - Transact SQL 12. rész
Tárolt eljárás létrehozása - TransactSQL 13. rész
Triggerek kezelése - Transact SQL 14. rész
Indexek létrehozása - Transact SQL 15. rész
Függvények definiálása - Transact SQL 16. rész
Függvények felüldefiniálása és törlése - Transact SQL 17. rész
Szabályok létrehozása - Transact SQL 18. rész

Alapértelmezett értékek megadása - Transact SQL 19. rész

Nézet táblák létrehozása - Transact SQL 20. rész
Nézettáblák módosítása - Transact SQL 21. rész
Adatbázis és tranzakciós napló mentése - Transact SQL 22. rész
Elmentett adatbázis és tranzakciós napló visszaállítása - Transact SQL 23. rész
Full-Text Catalog létrehozása, használata - Transact SQL 24. rész
Full-Text Catalog további lehetőségei - Transact SQL 25. rész
Tranzakció-kezelés az MS SQL-ben - Transact SQL 26. rész
Tranzakció-kezelés az MS SQL-ben - Transact SQL 27. rész
SET parancsok - Transact SQL 28. rész