Copia de seguridad de la base de datos con secuencia de comandos T-SQL: problema con declarar y establecer variables

Copia de seguridad de la base de datos con secuencia de comandos T-SQL: problema con declarar y establecer variables

¿Alguien puede decirme por qué no puedo hacer una copia de seguridad de mi base de datos con el siguiente script? Puedo ejecutar el script pero no creó la copia de seguridad.
Estoy usando 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',
...

Respuesta1

¿Has miradohttp://msdn.microsoft.com/en-us/library/ms187358%28v=sql.100%29.aspx?

Parece que está intentando insertar una variable local en un trabajo del Agente SQL Server.

Basado en esta sección:

[ @command= ] 'comando'

The commands to be executed by SQLServerAgent service through subsystem. 

El comando es nvarchar(max), con un valor predeterminado de NULL. El Agente SQL Server proporciona sustitución de tokens que le brinda la misma flexibilidad que brindan las variables cuando escribe programas de software.

Quizás quieras intentar usar tokens en lugar de variables locales. Este artículo puede ser un buen punto de partida para usted: http://msdn.microsoft.com/en-us/library/ms175575%28v=sql.100%29.aspx

Como señala, su solución se veráalgo como:

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

información relacionada