C# - Adatbázisok létrehozása, törlése

Transact SQL 7. rész

forráskód letöltése
Transact SQL mai témánk az adatbázisok létrehozási módjainak, illetve a már létező adatbázisok törlésének áttekintése. A cikkből arra is fény derül, hogy miként tudunk csatlakoztatni egy már meglévő adatbázis állományt az SQL szerverhez.
01.sql
Adatbázis létrehozásra a CREATE DATABASE utasítás szolgál. E két szót követi a létrehozandó adatbázisnak a neve, majd az ON kulcsszó után megadhatjuk az adatbázis állomány specifikációit. Egy-egy ilyen specifikációt zárójelek közé kell tennünk, így választva el azokat egymástól. Ezen belül a NAME paraméterben adható meg az adott állomány logikai neve, valamint a FILENAME után az állomány fizikai elérési útvonala és neve. Mivel egy adatbázis több állományból is állhat, ezért szükséges minden specifikációban megadni az aktuális logikai és fizikai nevet.
CREATE DATABASE Teszt01
ON
(
   NAME = 'Teszt01_dat',
   FILENAME = 'c:\Teszt01.mdf'
)
02.sql
További lehetőségként megadhatunk még egy-egy ilyen állomány specifikáción belül egy SIZE paramétert is, melyben az adott állomány kezdő méretét adhatjuk meg. Itt a MB az alapértelmezett mértékegység, így ha ezt használjuk, akkor nem kötelező jelölnünk. A MB jelölésen kívül használhatjuk a KB, GB és TB mértékegységeket. A megadott méret minimálisan 512KB kell hogy legyen, illetve a model adatbázis méreténél nagyobb érték. A SIZE használata nem kötelező, ha elhagyjuk, akkor a lehető legkisebb kezdeti állomány méret lesz használva.
Megadható egy állomány maximális mérete is a MAXSIZE paraméterben. A mértékegységek megegyeznek az előbbiekkel. A MAXSIZE használata nem kötelező, ha elhagyjuk, akkor az adott állomány mérete addig nőhet, amíg csak van hely a háttértáron.
CREATE DATABASE Teszt02
ON
(
   NAME = 'Teszt02_dat',
   FILENAME = ' c:\Teszt02.mdf',
   SIZE = 50,
   MAXSIZE = 1TB
)
A LOG ON kulcsszavak után adhatók meg a tranzakció napló állományára vonatkozó specifikációk, melynek szabályai egyeznek az eddig ismertetettel. Használata nem kötelező, ha elhagyjuk, akkor a tranzakció napló állománya automatikusan létrejön. Az állomány neve az adat állomány nevéből lesz képezve a „_log” karakterek kiegészítésével. Mérete az összes adatállomány összméretének 25%-a lesz.
LOG ON
(
   NAME = 'Teszt02_log',
   FILENAME = ' c:\Teszt02.ldf',
   SIZE = 10,
   MAXSIZE = 500
)
03.sql
Több fizikai állományra bontott adatbázis létrehozása esetén nincs más tennivalónk, mint hogy zárójelek között felsoroljuk az egyes állományokhoz tartozó specifikációkat. Ezeket az állományokat csoportosíthatjuk is. Van egy elsődleges csoport, melyet a PRIMARY kulcsszó jelöl. Az alábbi példába a 'Teszt03_A_dat' és 'Teszt03_B_dat' kerül az elsődleges csoportba.
Ezen kívül létrehozhatunk több, tetszőleges nevű csoportot, melyet a FILEGROUP kulcsszó után adhatunk meg. A csoport nevének megadása után a már szokásos specifikációk révén adhatjuk meg, hogy melyik állomány kerüljön az adott csoportba.
Alábbi példában a Group1 csoportba a 'Teszt03_C_dat', a 'Teszt03_D_dat' és a 'Teszt03_E_dat' kerül, míg a Group2 csoportba a 'Teszt03_F_dat' állomány kap helyet.
Mivel minden fizikai állománynál megadhatunk tetszőleges elérési útvonalat, így lehetőségünk van arra, hogy az adatbázis egyes részeit, illetve a tranzakció naplót, akár egy másik meghajtón helyezzük el és ezzel jelentősen növelhetjük a rendszerünk elérhetőségét.
CREATE DATABASE Teszt03
ON PRIMARY
(
   NAME = 'Teszt03_A_dat',
   FILENAME = 'c:\Teszt03_primary_a.mdf'
),
(
   NAME = 'Teszt03_B_dat',
   FILENAME = 'c:\Teszt03_primary_b.mdf'
),
FILEGROUP Group1
(
   NAME = 'Teszt03_C_dat',
   FILENAME = 'c:\Teszt03_group1_c.mdf'
),
(
   NAME = 'Teszt03_D_dat',
   FILENAME = 'c:\Teszt03_group1_d.mdf'
),
(
   NAME = 'Teszt03_E_dat',
   FILENAME = 'c:\Teszt03_group1_e.mdf'
),
FILEGROUP Group2
(
   NAME = 'Teszt03_F_dat',
   FILENAME = 'c:\Teszt03_group2_f.mdf'
)
LOG ON
(
   NAME = 'Teszt03_log',
   FILENAME = 'c:\Teszt03.ldf'
)
04.sql
Adatbázis létrehozásánál megadhatjuk azt is, hogy a maximális méret nincs korlátozva. Ehhez a MAXSIZE paraméternek az UNLIMITED értéket kell adnunk.
CREATE DATABASE Teszt04
ON
(
   NAME = 'Teszt04_dat',
   FILENAME = 'c:\Teszt04.mdf',
   MAXSIZE = UNLIMITED
)
További lehetőségünk az állomány specifikációban az állomány automatikus növekedésének a szabályozása. Ehhez a FILEGROWTH paraméternek kell értéket adnunk. Amikor az adatállomány, vagy a tranzakció napló állomány mérete már nem elegendő a munkához, akkor az SQL szerver növeli ezt a méretet. Ennek mértékét veszi a FILEGROWTH paraméterből. A megadható mértékegységek itt is a KB, MB, GB, TB, illetve használhatunk % jelet is, mely arra utasítja a rendszert, hogy az aktuális méretének a megadott százalékával növelje az állomány méretét. Alapértelmezett mértékegység a MB. Ha nem adjuk meg a FILEGROWTH paramétert, akkor az alapértelmezett érték 10% lesz, de minimum 64 KB. A megadott érték minden esetben 64 KB-ra lesz kerekítve.
LOG ON
(
   NAME = 'Teszt04_log',
   FILENAME = 'c:\Teszt04.ldf',
   FILEGROWTH = 10
)
05.sql
Ha már adottak az adatbázis állományok és csak csatlakoztatni szeretnénk azokat az SQL szerverhez, akkor ezt úgy tehetjük meg, hogy a CREATE DATABASE-t használva megadunk egy állomány specifikációt, majd ezt követően a FOR ATTACH záradékot használjuk. Ez esetben nem jön létre új adatbázis, hanem csak a megadott kerül be az SQL szerverbe.
CREATE DATABASE Teszt05
ON
(
   NAME = 'Teszt05_dat',
   FILENAME = 'c:\Teszt05.mdf'
)
FOR ATTACH
06.sql
Egy adatbázis létrehozásánál megadhatjuk azt is, hogy az abban lévő adatok milyen módszer szerint legyenek rendezve. Ehhez a COLLATE záradékot kell használnunk, mely után a rendezési nevet kell megadnunk.
CREATE DATABASE Teszt06
ON
(
   NAME = 'Teszt06_dat',
   FILENAME = 'c:\Teszt06.mdf'
)
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()
07.sql
Már meglévő adatbázist a DROP DATABASE utasítással törölhetünk. Paraméterként meg kell adnunk a törlendő adatbázis nevét. A használat során legyünk körültekintőek, mert a törlés a fizikai állományokkal együtt végérvényesen megtörténik.
A DROP DATABASE használatakor fontos, hogy a Master táblának kell aktívnak lennie, hogy az ott található adott táblára vonatkozó információk is törlésre kerülhessenek.
USE Master
DROP DATABASE Teszt01
08.sql
A DROP DATABASE használatakor arra is lehetőségünk van, hogy egy lépésben több adatbázist töröljünk. Ez esetben vesszővel elválasztva kell felsorolnunk a törlendő adatbázisok neveit.
USE Master
DROP DATABASE Teszt02, Teszt03, Teszt04, Teszt06

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