Backup de banco de dados com script T-SQL - Problema com declaração e definição de variáveis

Backup de banco de dados com script T-SQL - Problema com declaração e definição de variáveis

Alguém pode me dizer por que não consigo fazer backup do meu banco de dados com o script abaixo? Posso executar o script, mas ele não criou o backup.
Estou usando o 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',
...

Responder1

Você já olhouhttp://msdn.microsoft.com/en-us/library/ms187358%28v=sql.100%29.aspx?

Parece que você está tentando inserir uma variável local em um trabalho do SQL Server Agent.

Com base nesta seção:

[ @command= ] 'comando'

The commands to be executed by SQLServerAgent service through subsystem. 

O comando é nvarchar(max), com o padrão NULL. O SQL Server Agent fornece substituição de token que oferece a mesma flexibilidade que as variáveis ​​fornecem quando você escreve programas de software.

Você pode tentar usar tokens em vez de variáveis ​​locais. Este artigo pode ser um bom ponto de partida para você: http://msdn.microsoft.com/en-us/library/ms175575%28v=sql.100%29.aspx

Como indica, sua solução pareceráalgo como:

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

informação relacionada