
Может кто-нибудь сказать мне, почему я не могу сделать резервную копию своей базы данных с помощью скрипта ниже? Я могу запустить скрипт, но он не создает резервную копию.
Я использую 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',
...
решение1
Вы смотрели наhttp://msdn.microsoft.com/en-us/library/ms187358%28v=sql.100%29.aspx?
Похоже, вы пытаетесь вставить локальную переменную в задание агента SQL Server.
На основе этого раздела:
[ @command= ] 'команда'
The commands to be executed by SQLServerAgent service through subsystem.
Команда — nvarchar(max) со значением по умолчанию NULL. Агент SQL Server обеспечивает замену токенов, что дает вам ту же гибкость, которую предоставляют переменные при написании программ.
Вы можете попробовать использовать токены вместо локальных переменных. Эта статья может стать для вас хорошей отправной точкой: http://msdn.microsoft.com/en-us/library/ms175575%28v=sql.100%29.aspx
Как указано, ваше решение будет выглядетьчто-то вроде:
@command = 'BACKUP DATABASE MyBackup TO DISK = $(ESCAPE_SQUOTE (@pathName)) WITH INIT'