Delphi - MS SQL tárolt eljárások

MS SQL tárolt eljárások 12. rész

forráskód letöltése
Ha egy általunk készített adatbázist telepítünk egy másik rendszerre, akkor az ott lévő MS SQL szerverhez csatlakoztatni kell az adatbázist, hogy használni is tudjuk. Ha ezt nem kívánjuk kézzel megoldani az Enterprise Manager-ben, akkor lehetőségünk van programból megtenni, méghozzá egy tárolt eljárás segítségével. Ebben a részben nem csak ezt nézzük meg, hanem azt is, hogy egy már csatlakoztatott adatbázist, annak törlése nélkül hogyan tudunk eltávolítani a szerverből.
01_sp_attach_db.sql: Adatbázis csatlakoztatása az MS SQL szerverhez
Az adatbázis csatlakoztatásához használt tárolt eljárás az sp_attach_db. Ennek szintaxisa a következőképpen néz ki:
sp_attach_db [ @dbname = ] 'dbname' 
    , [ @filename1 = ] 'filename_n' [ ,...16 ]
Paraméterek:
dbname
Ebben a paraméterben adhatjuk meg az adatbázis nevét. Feltétel, hogy ilyen nevű adatbázis nem lehet regisztrálva a szerveren, mivel a névnek egyedinek kell lennie.
filename1, filename2, ...
Ezekben a paraméterekben adhatjuk meg az adatbázishoz tartozó fájlok nevét az elérési útvonallal együtt. A paraméterek hossza maximum 260 karakter lehet, és maximum 16 fájlnevet adhatunk meg. Legalább egy fájlt kötelező megadni, azt amelyik a táblákat, és az adatbázis egyéb adatait, többek között a többi fájl nevét is tartalmazza. Az adatbázist alkotó többi fájl nevét csak akkor kell megadni, ha azok az adatbázis leválasztása után át lettek helyezve más könyvtárakba.
Természetesen csak olyan adatbázisokat lehet csatlakoztatni, amelyek előzőleg le lettek választva.
Csak a sysadmin és a dbcreator futtathatja ezt az eljárást.
exec Master..sp_attach_db
                @dbname='TestDB',
                @filename1='C:\MyDb\TestDB.MDF',
                @filename2='C:\MyDb\TestDB_Log.LDF';
Ha az adatbázisunk csak egyetlen fájlból áll, akkor annak csatlakoztatására használhatjuk az sp_attach_single_file_db tárolt eljárást.
sp_attach_single_file_db [ @dbname = ] 'dbname',
 [ @physname = ] 'physical_name'
Paraméterei
dbname
Az adatbázis neve (ua., mint az sp_attach_db eljárásnál).
physname
Az adatbázis fájl neve az elérési útvonallal együtt.
03_sp_detach_db.sql: Adatbázis leválasztása a szerverről
Egy adatbázis leválasztásához az sp_detach_db tárolt eljárást használhatjuk. Ez az eljárás azon felül, hogy leválasztja az adatbázist, opcionálisan elindítja a UPDATE STATISTICS utasítást is.
sp_detach_db [ @dbname = ] 'dbname' 
    [ , [ @skipchecks = ] 'skipchecks' ]
Paraméterei:
dbname
A leválasztandó adatbázis neve.
skipchecks
Ha ennek a paraméternek az értéke „true”, akkor az UPDATE STATISTICS utasítás nem kerül meghívásra, míg ha „false”, akkor igen. Ez az opció akkor használható ki, amikor az adatbázis egy csak olvasható adattárolóra (pl. CD-ROM) kerül.

MS SQL tárolt eljárások cikksorozat