C# - Adatbázis módosítás lehetőségei

Transact SQL 8. rész

forráskód letöltése
Múltkori cikkben az adatbázisok létrehozásával és megszüntetésével foglalkoztunk. Most azt a kérdéskört vizsgáljuk, hogy egy létrehozott adatbázisnak a tulajdonságait miként változtathatjuk meg menetközben.
01.sql
Első lépésként létrehozunk egy adatbázist Sample01 névvel, melyen a változtatásokat szemléltetjük.
CREATE DATABASE Sample01
ON
(
   NAME = 'Sample01_dat',
   FILENAME = 'c:\Sample01.mdf'
)
02.sql
Egy meglévő adatbázis módosításához az ALTER DATABASE utasítást kell meghívnunk. Ezt követően annak az adatbázisnak a nevét kell megadnunk, amelyet módosítani szeretnénk.
A következő megadandó információ az elvégzendő funkció lesz. Ha például egy adatbázishoz szeretnénk egy adatállományt hozzáadni, akkor ehhez az ADD FILE funkciót kell használnunk. Az új állomány létrehozásához szükséges adatokat egy a CREATE DATABASE-nél már ismertetett állomány szekcióban adhatunk meg.
ALTER DATABASE Sample01
ADD FILE
(
   NAME = 'Sample01_B_dat',
   FILENAME = 'c:\Sample01_B.mdf',
   SIZE = 10,
   MAXSIZE = 100
)
03.sql
Természetesen nem csak adatállományt adhatunk egy meglévő adatbázishoz, hanem egy új napló állományt is. Ekkor az előző példához képest csak annyi a változás, hogy most az ADD LOG FILE funkciót kell meghívnunk.
ALTER DATABASE Sample01
ADD LOG FILE
(
   NAME = 'Sample01_B_log',
   FILENAME = 'c:\Sample01_B.ldf',
   SIZE = 10,
   MAXSIZE = 100
)
04.sql
Ha valamit hozzáadunk egy adatbázishoz, akkor nyilvánvaló, hogy annak eltávolítására is van lehetőségünk. Egy adatállomány eltávolításához a végrehajtandó funkció a REMOVE FILE lesz, amely után az eltávolítandó állomány logikai nevét kell megadnunk. Az alábbi példa eltávolítja az előbbiekben hozzáadott adatállományt. Ilyen esetben a fizikai állomány is törlésre kerül.
ALTER DATABASE Sample01
REMOVE FILE Sample01_B_dat
05.sql
A tranzakció napló állományának az eltávolításához szintén a REMOVE FILE funkciót használhatjuk, nyilván itt a napló állomány logikai nevét kell megadnunk.
ALTER DATABASE Sample01
REMOVE FILE Sample01_B_log
06.sql
Állománycsoport hozzáadására az ADD FILEGROUP funkció szolgál. Paraméterként a létrehozandó állománycsoport nevet kell megadnunk.
ALTER DATABASE Sample01
ADD FILEGROUP Group1
A csoport név létrehozása után, ha veszünk fel új állományokat, akkor ezeket rögtön egy már meglévő csoportba irányíthatjuk, ha használjuk a TO FILEGROUP záradékot és ezt követően megadjuk a csoport nevét.
ALTER DATABASE Sample01
ADD FILE
(
   NAME = 'Sample01_C_dat',
   FILENAME = 'c:\Sample01_C.mdf',
   SIZE = 10,
   MAXSIZE = 100
),
(
   NAME = 'Sample01_D_dat',
   FILENAME = 'c:\Sample01_D.mdf',
   SIZE = 10,
   MAXSIZE = 100
)
TO FILEGROUP Group1
07.sql
Egy állománycsoport tulajdonságainak módosítására szolgál a MODIFY FILEGROUP funkció, melynek meg kell adni, hogy melyik állománycsoportot szeretnénk módosítani, valamint az alábbiak közül valamely kulcsszót:
  • READONLY – az állománycsoportban lévő objektumok csak olvashatóak lesznek, azokat módosítani nem lehet. Az elsődleges (PRIMARY) állománycsoport nem lehet READONLY. Ezt a tulajdonságot csak akkor állíthatjuk be, ha kizárólagos módon férünk hozzá az adatbázishoz.
  • READWRITE – törli a READONLY beállítás hatását, vagyis ettől kezdve az objektumok már módosíthatóak is. Ezt a tulajdonságot csak akkor állíthatjuk be, ha kizárólagos módon férünk hozzá az adatbázishoz
  • DEFAULT – alapértelmezett állománycsoport kijelölése. Egy adatbázisban csak egy lehet. A CREATE DATABASE az elsődleges (PRIMARY) állománycsoportot jelöli ki alapértelmezettnek. Új táblák és indexek az alapértelmezett állománycsoportba kerülnek, ha létrehozásukkor nem volt más előírva.
use Master
ALTER DATABASE Sample01
MODIFY FILEGROUP Group1 READONLY
Állománycsoport módosításakor a Master tábla legyen az aktív.
Az elsődleges állománycsoportra a [PRIMARY] sztringgel hivatkozhatunk.
ALTER DATABASE Sample01
MODIFY FILEGROUP [PRIMARY] DEFAULT
08.sql
Most nézzük, miként tudjuk törölni az előző példákban létrehozott és csak olvashatóra állított Group1 nevű állománycsoportot. Először aktiváljuk a master adatbázist.
use master
Ezt követően töröljük a READONLY beállítást az állománycsoport tulajdonságaiból.
ALTER DATABASE Sample01
MODIFY FILEGROUP Group1 READWRITE
Most már hozzáférhetünk és így eltávolíthatjuk a Sample01_C_dat és Sample01_D_dat állományokat.
ALTER DATABASE Sample01 REMOVE FILE Sample01_C_dat
ALTER DATABASE Sample01 REMOVE FILE Sample01_D_dat
Végül a REMOVE FILEGROUP funkció hívásával törölhetjük a megadott nevű állománycsoportot. Fontos tudni, hogy csak üres állománycsoport törölhető, ezért ha tartalmaz állományt, azokat előbb törölnünk kell.
ALTER DATABASE Sample01
REMOVE FILEGROUP Group1
09.sql
Egy adatbázishoz nem csak hozzáadhatunk egy állományt, hanem módosíthatjuk is annak tulajdonságait. Ehhez első lépésként hozzáadunk egy új adatállományt az adatbázisunkhoz, hogy legyen mit módosítani.
ALTER DATABASE Sample01
ADD FILE
(
   NAME = 'Sample01_E_dat',
   FILENAME = 'c:\Sample01_E.mdf',
   SIZE = 2
)
Ezt követően a MODIFY FILE funkció hívásával elvégezhetjük például az aktuális állomány méret növelését 2 MB-ról 4 MB-ra az alábbi módon:
ALTER DATABASE Sample01
MODIFY FILE
(
   NAME = 'Sample01_E_dat',
   SIZE = 4
)
Ezzel a módszerrel a FILENAME, SIZE, FILEGROWTH, és MAXSIZE tulajdonságok változtathatók meg. A méret módosítása esetén az új méret csak nagyobb lehet az aktuálisnál.
10.sql
Egy adatbázis nevét is megváltoztathatjuk. Ehhez a MODIFY NAME funkciót kell használnunk, mely után megadjuk az adatbázisunknak szánt új nevet.
ALTER DATABASE Sample01
MODIFY NAME = Sample02
11.sql
Miután megváltozott az adatbázisunk neve, ne felejtsük el immár az új nevet használva elérni azt.
Lehetőség van még a rendezési sorrend megváltoztatására is. Ehhez a COLLATE kulcsszó és az új rendezési algoritmus megnevezésének megadása szükséges.
ALTER DATABASE Sample02
COLLATE Hungarian_BIN
A lehetséges neveket és azok leírását megkaphatjuk az alábbi utasítás futtatásával:
SELECT * FROM ::fn_helpcollations()
12.sql
Utolsó példánkban pedig nem marad más hátra, mint törölni a létrehozott adatbázist a már ismertetett módon, hogy a teszt után ne maradjon feleslegesen hátra semmi.
use master
DROP DATABASE Sample02

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