SQL 2005: именование выходного файла шага задания агента - PullRequest
0 голосов
/ 23 января 2009

Кто-нибудь знает, пожалуйста, есть ли способ указать «этот компьютер» в пути к файлу, который понравится SQL Server?

У меня есть работа агента, которую я хочу записать на все свои серверы. Он выводит в файл на локальном компьютере, поэтому я хочу записать имя файла как

\\localhost\<shared-folder-name>\<file-name>

Другая причина - я планирую использовать доставку журналов для аварийного восстановления и хочу, чтобы задания работали на том же сервере, на котором они работают. Сценарий прекрасно выполняет задание, но при запуске задания выдается сообщение об ошибке «Невозможно открыть файл вывода Step». Я думаю, что я удалил разрешения для общих папок и папок: он отлично работает с C:\<folder-name>\<file-name>.

Ответы [ 3 ]

1 голос
/ 23 января 2009

вы пробовали @@ SERVERNAME?

SELECT @@SERVERNAME

Или вы можете использовать это, второе, которое вы можете использовать, если у вас запущено несколько экземпляров SQl-сервера

SELECT serverproperty('MachineName'),serverproperty('Instancename')
0 голосов
/ 08 февраля 2011

Поместите папку в одно и то же место на всех машинах.

C: \ SharedSQLLogFiles .....

Если вы не хотите, чтобы они находились в одном месте, создайте Junction C: \ SharedSQLLogFiles, указывающий на фактическое местоположение.

Таким образом, вы можете просто записать местоположение файла как локальный путь, но при этом иметь доступ к файлу с удаленного общего ресурса.

Ура, Бен

0 голосов
/ 27 марта 2009

Когда вы пишете сценарий Вы можете использовать параметр @output_file_name

EXECUTE msdb.dbo.sp_add_jobstep @job_name = @JobName01, @step_name = @JobName01, 
@subsystem = 'CMDEXEC', @command = @JobCommand01, @output_file_name = @OutputFile

Чтобы установить имя выходного журнала, мы можем сделать

SET @OutputFile = @LogDirectory + '\SQLAGENT_JOB_$(ESCAPE_SQUOTE(JOBID))_$(ESCAPE_SQUOTE(STEPID))_$(ESCAPE_SQUOTE(STRTDT))_$(ESCAPE_SQUOTE(STRTTM)).txt'

To get the server name
$(ESCAPE_SQUOTE(SRVR))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...