SQL backup dátum formázással parancssorból

Szervert frissítettünk és úgy határoztunk, hogy nem csak a webszervert cseréljük le IIS7-re, hanem az adatbázis kiszolgálót is SQL Server 2008. Ezek után nem volt mit tenni, a backup szkripteket is illett migrálni, hiszen az osql.exe már egy ideje feketelistán van.

Korábban az osql.exe segítségével futtattuk a backup szkripteket, ami bár működik SQL Server 2008-on, csakhogy már egy ideje ez szerepel róla a Books Online-ban:

This feature will be removed in a future version of SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use the feature. Use sqlcmd instead. For more information, see sqlcmd Utility.

A jó hír az, hogy a két eszközt szinte ugyanúgy kell paraméterezni, legalábbis a nálunk használt –S, –d, –E és –Q paraméterek egyeztek, tehát éppen csak az .exe nevét kellett átírni.

Mivel a backup fájl nevébe a dátumot is szeretjük beleírni, ezért használtunk egy külső .vbs fájlt, ami a mai dátumot fájlnév-barát módon előállítja. Most kis szerencsével sikerült meglelni azt a megoldást, amivel ezt közvetlenül .cmd fájlból megtehetjük. Az alábbi példában a :generate-timestamp címke utáni rész a %timestamp% változóba beleírja a mai dátumot ebben a formában: 20081020_1623. Mivel valójában sztring parszolásról van szó, érdemes rá odafigyelni, hogy ez csak akkor fog jól működni, ha a szerveren magyar területi beállítások vannak.

    @echo off

    call :generate-timestamp
    echo Timestamp: %timestamp%
    pause
    goto :EOF

    :generate-timestamp
    set now_date=%date%
    set now_time=%time%
    set now_Year=%now_date:~0,4%
    set now_Month=%now_date:~5,2%
    set now_Day=%now_date:~8,2%
    set now_Hour=%now_time:~0,2%
    set now_Min=%now_time:~3,2%
    if "%now_Hour:~0,1%"==" " set now_Hour=0%now_Hour:~1,1%
    set timestamp=%now_year%%now_month%%now_day%_%now_hour%%now_min%
    goto :EOF

    :EOF

Aki substring, index vagy hasonló függvényekre számított, az velem együtt csalódott egy kicsit, de azért örüljünk, hogy meg lehet csinálni. Csak egy kicsit Perl-szerű érzés akarmi.Substring(0,4) helyett %akarmi:~0,4%-et írni  :)


Balássy György (MS RD, ASP.NET MVP, MCTS)

Balássy György (MS RD, ASP.NET MVP, MCTS) Villamosmérnök, a BME Automatizálási és Alkalmazott Informatikai Tanszékén webportálok fejlesztését oktatja. 2000 óta foglalkozik a Microsoft .NET platformjával, melynek meghonosításában jelentős szerepet vállalt előadóként, konzulensként és A .NET Framework és programozása című könyv társszerzőjeként. Az MSDN Kompetencia Központon belül a Portál Technológiák Csoport vezetője, szakterülete web alapú rendszerek fejlesztése és üzemeltetése. 2004-ben Magyarországon elsőként kapta meg a Most Valuable Professional címet, majd 2005 óta a Microsoft magyarországi regionális igazgatója. Publikációi a Technet Magazinban, az MSDN Kompetencia Központ honlapján és szakmai blogjában olvashatóak.

2008.10.20. 18:20:20 | Permalink | Hozzászólások: 0 | Tárgyszavak: ,


  • PHP futtatókörnyezet kialakítása IIS 7 webszerver felett

    Dávid Zoltán A webes világban a PHP az egyik legelterjedtebb szerveroldali programozási nyelv. A PHP fejlesztők jelentős része Windowson dolgozik, mégis alig látunk Windows Serveren hosztolt PHP-alapú oldalakat. A jelenség egyik oka a PHP Windowson való futtatásának eddig alacsony hatékonysága illetve megbízhatatlansága. Ennek az áldatlan állapotnak az IIS 7.0 és a FastCGI modul megjelenésével remélhetőleg vége. Tovább »
  • Adatok bekérése SharePoint Designeres workflowban

    Balássy György (MS RD, ASP.NET MVP, MCTS) SharePointos workflow fejlesztéshez igen jól használható eszköz a SharePoint Designer (SPD), de tagadhatatlan, hogy néha nehéz elsőre eligazodni a felhasználói felületen. Az egyik ilyen “néha” akkor jön velünk szembe, amikor a folyamat futása során adatokat szeretnénk bekérni a felhasználóktól. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások