2017-07-07 6 views
-2

Ich erstelle einen Job, der Sicherung einer Datenbank und mit dem Dateinamen das heutige Datum suffixiert. Aber ich komme unter Fehler.Datenbanksicherung mit dynamischem SQL

DECLARE @Query NVARCHAR(MAX) 
SET @Query = 'BACKUP DATABASE [DBName] TO DISK = ''D:\Backups\DBName_'+cast(convert(date,getdate())as varchar)+'.bak' 
EXEC sp_executeSql @Query 

Fehlermeldung:

Msg 105, Level 15, State 1, Line 1 
Unclosed quotation mark after the character string 'D:\Backups\DBName_2017-07-07.bak'. 
Msg 102, Level 15, State 1, Line 1 
Incorrect syntax near 'D:\Backups\DBName_2017-07-07.bak'. 
+0

hinzufügen Sie haben unübertroffene Zitate. Sie müssen wahrscheinlich entkommen oder doppelte Anführungszeichen verwenden, wenn das eine Option ist. –

+2

Warum machen Sie Backups auf diese Weise? –

+1

Auch prolly am besten Sie Backup mit '.txt' nicht zu nennen (sie sind keine textuellen Backups, sie sind ein binäres Format) –

Antwort

1

Sie sind der letzte Schlusskurs fehlt. Es sollte

SET @Query = 'BACKUP DATABASE [MetaCost] TO DISK = ''D:\Backups\DBName.bak_'+cast(convert(date,getdate())as varchar)+'.txt''' 

auch typischerweise in .txt''' beenden Sie die .bak Erweiterung für einen SQL-Datenbank-Backup verwenden.

0

Ihre Aussage wird ausgegeben

BACKUP DATABASE [DBName] TO DISK = ‚D: \ Backups \ DBName.bak_2017-07-07.txt

Sie benötigen '.txt'''

Verwandte Themen