
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'