Datenbanksicherung mit T-SQL-Skript - Problem beim Deklarieren und Festlegen von Variablen

Datenbanksicherung mit T-SQL-Skript - Problem beim Deklarieren und Festlegen von Variablen

Kann mir jemand sagen, warum ich meine Datenbank mit dem folgenden Skript nicht sichern kann? Ich kann das Skript ausführen, aber es hat kein Backup erstellt.
Ich verwende SQL Server 2008

DECLARE @pathName NVARCHAR(512)
SET @pathName = 'C:\Backup\MyBackup.bak'

...

EXEC sp_add_jobstep
...
@command = 'BACKUP DATABASE MyBackup TO DISK = @pathName WITH INIT',
...

Antwort1

Hast Du Dir angesehenhttp://msdn.microsoft.com/en-us/library/ms187358%28v=sql.100%29.aspx?

Es sieht so aus, als ob Sie versuchen, eine lokale Variable in einen SQL Server-Agent-Job einzufügen.

Basierend auf diesem Abschnitt:

[ @command= ] 'Befehl'

The commands to be executed by SQLServerAgent service through subsystem. 

Der Befehl ist nvarchar(max) und hat den Standardwert NULL. SQL Server Agent bietet Token-Ersetzung, die Ihnen beim Schreiben von Softwareprogrammen dieselbe Flexibilität bietet wie Variablen.

Sie können versuchen, Token anstelle von lokalen Variablen zu verwenden. Dieser Artikel kann ein guter Ausgangspunkt für Sie sein: http://msdn.microsoft.com/en-us/library/ms175575%28v=sql.100%29.aspx

Wie es zeigt, wird Ihre Lösung aussehenetwas wie:

@command = 'BACKUP DATABASE MyBackup TO DISK = $(ESCAPE_SQUOTE (@pathName)) WITH INIT'

verwandte Informationen