Как использовать переменную пути внутри параметра команды - PullRequest
0 голосов
/ 05 мая 2020

Я хочу использовать путь (E: \ Ball.bak) в качестве переменной внутри параметра команды, есть ли способ?

EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Backup', 
        @step_id=1, 
        @cmdexec_success_code=0, 
        @on_success_action=1, 
        @on_success_step_id=0, 
        @on_fail_action=2, 
        @on_fail_step_id=0, 
        @retry_attempts=0, 
        @retry_interval=0, 
        @os_run_priority=0, 
        @subsystem=N'TSQL', 
        @command=N'"use dbname
go
BACKUP DATABASE [BasketBall] TO  DISK =N''E:\Ball.bak'' 
WITH  INIT ,  NOUNLOAD ,  NAME = N''backup'',  NOSKIP ,  STATS = 10,  NOFORMAT"', 
        @database_name=N'master', 
        @flags=0

1 Ответ

0 голосов
/ 05 мая 2020

Вы можете подготовить @command отдельно как переменную, а затем использовать эту переменную напрямую.

Попробуйте следующее:

declare @path varchar(100) = 'e:\test\ '
declare @cmd nvarchar(max) = N'use dbname
                go
                BACKUP DATABASE [BasketBall] TO  DISK =N'''+@Path+'''
                WITH  INIT ,  NOUNLOAD ,  NAME = N''backup'',  NOSKIP ,  STATS = 10,  NOFORMAT'
print @cmd
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Backup', 
        @step_id=1, 
        @cmdexec_success_code=0, 
        @on_success_action=1, 
        @on_success_step_id=0, 
        @on_fail_action=2, 
        @on_fail_step_id=0, 
        @retry_attempts=0, 
        @retry_interval=0, 
        @os_run_priority=0, 
        @subsystem=N'TSQL', 
        @command=@cmd,
        @database_name=N'master', 
        @flags=0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...