none
Script backup sql express 2008 RRS feed

  • Domanda

  • Salve a tutti,

    premetto che non capisco molto di sql :),volevo sapere se qualcuno mi puo indicare dove modificare questo script per fare in modo che il backup punti ad un disco in particolare
    es. B:\..

    @echo off
    SQLCMD -U Username -P ****** -S .\WINCODY -b -d master -Q"DECLARE @Data NVARCHAR(15); DECLARE @NomeBackup NVARCHAR(50); SET @Data = (SELECT CONVERT(NVARCHAR,GETDATE(),102));SET @NomeBackup = '%~dp0\WinCodyDB_'+@Data+'.Backup DB WinCody';BACKUP DATABASE WinCodyDB TO DISK=@NomeBackup WITH NAME=@Data;"
    if ERRORLEVEL 1 GOTO ERRORE

    EXIT /B %ERRORLEVEL%
    :ERRORE
    pause

    grazie
    Marco


    venerdì 13 luglio 2012 10:30

Risposte

  • Salve a tutti,

    premetto che non capisco molto di sql :),volevo sapere se qualcuno mi puo indicare dove modificare questo script per fare in modo che il backup punti ad un disco in particolare
    es. B:\..

    @echo off
    SQLCMD -U Username -P ****** -S .\WINCODY -b -d master -Q"DECLARE @Data NVARCHAR(15); DECLARE @NomeBackup NVARCHAR(50); SET @Data = (SELECT CONVERT(NVARCHAR,GETDATE(),102));SET @NomeBackup = '%~dp0\WinCodyDB_'+@Data+'.Backup DB WinCody';BACKUP DATABASE WinCodyDB TO DISK=@NomeBackup WITH NAME=@Data;"
    if ERRORLEVEL 1 GOTO ERRORE

    EXIT /B %ERRORLEVEL%
    :ERRORE
    pause

    Ciao Marco,

    Qui SQL Server c'entra poco :-)

    In un batch la variabile %~dn (dove n può assumere un valore compreso tra 0 e 9) restituisce la lettera del drive se il parametro n specificato è una directory o un file valido.

    Quel batch esegue sempre il backup nella root del disco contenente il batch stesso! Nel caso volessi eseguire il backup su un disco/path differente, io modificherei il batch sostituendo %~dp0 con un banale %1 e specificando tale disco/path come primo parametro durante la chiamata.

    Per maggiori info leggi questa reference.

    Ciao!


    Lorenzo Benaglia
    http://blogs.dotnethell.it/lorenzo
    http://social.technet.microsoft.com/Forums/it-IT/sqlserverit

    lunedì 16 luglio 2012 20:34
    Moderatore

Tutte le risposte

  • Ciao,

    per ulteriori informazioni sul funzionamento di SQLCMD leggi qui: http://msdn.microsoft.com/it-it/library/ms180944(v=sql.100).aspx

    Ti consiglio anche di cambiare credenziali di SQL Server in quanto le hai pubblicate per sbaglio sul forum (password compresa)

    domenica 15 luglio 2012 10:36
    Moderatore
  • Salve a tutti,

    premetto che non capisco molto di sql :),volevo sapere se qualcuno mi puo indicare dove modificare questo script per fare in modo che il backup punti ad un disco in particolare
    es. B:\..

    @echo off
    SQLCMD -U Username -P ****** -S .\WINCODY -b -d master -Q"DECLARE @Data NVARCHAR(15); DECLARE @NomeBackup NVARCHAR(50); SET @Data = (SELECT CONVERT(NVARCHAR,GETDATE(),102));SET @NomeBackup = '%~dp0\WinCodyDB_'+@Data+'.Backup DB WinCody';BACKUP DATABASE WinCodyDB TO DISK=@NomeBackup WITH NAME=@Data;"
    if ERRORLEVEL 1 GOTO ERRORE

    EXIT /B %ERRORLEVEL%
    :ERRORE
    pause

    Ciao Marco,

    Qui SQL Server c'entra poco :-)

    In un batch la variabile %~dn (dove n può assumere un valore compreso tra 0 e 9) restituisce la lettera del drive se il parametro n specificato è una directory o un file valido.

    Quel batch esegue sempre il backup nella root del disco contenente il batch stesso! Nel caso volessi eseguire il backup su un disco/path differente, io modificherei il batch sostituendo %~dp0 con un banale %1 e specificando tale disco/path come primo parametro durante la chiamata.

    Per maggiori info leggi questa reference.

    Ciao!


    Lorenzo Benaglia
    http://blogs.dotnethell.it/lorenzo
    http://social.technet.microsoft.com/Forums/it-IT/sqlserverit

    lunedì 16 luglio 2012 20:34
    Moderatore
  • Quello non è %~d# ma %~dp#

    Fa il backup nella stessa cartella in cui si trova il .bat (e lo so perché quel batch l'ho fatto io) :P

    Basta che metti il batch da un altra parte :)

    • Modificato LinoB giovedì 11 ottobre 2012 09:19
    • Proposto come risposta LinoB giovedì 11 ottobre 2012 09:27
    giovedì 11 ottobre 2012 09:19