SQL 2005:代理作业步骤输出文件命名

问题描述:

有谁知道,如果有一种方法可以在SQL Server喜欢的文件路径中指定“本机”?SQL 2005:代理作业步骤输出文件命名

我有一个代理作业,我想脚本到我的所有服务器上。它输出到本地计算机上的文件,所以我想脚本文件名为

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

另一个原因是我打算使用日志传送进行灾难恢复,我希望工作提供相同的任何服务器他们正在运行。该脚本将作业设置正常,但是当我运行作业时,出现“无法打开步骤输出文件”错误。我想我已经取消了共享和文件夹权限:它可以与C:\<folder-name>\<file-name>正常工作。

你有没有试过@@ SERVERNAME?

SELECT @@SERVERNAME 

或者你可以用这个,如果你有多个SQL Server实例可以使用第二个运行

SELECT serverproperty('MachineName'),serverproperty('Instancename') 
+0

谢谢,威胁,但问题是我说的,你Management Studio中指定作业步骤的结果输出文件。另外,我希望字符串在所有服务器上都相同,以防止我必须故障切换到备用服务器。 – 2009-01-23 15:20:54

当你脚本出来 您可以利用@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)) 
+0

不工作:-( – Faiz 2010-09-03 12:44:07

将文件夹放在所有机器的相同位置。

C:\ SharedSQLLogFiles .....

如果你不想让他们在相同的位置,创建一个路口C:\ SharedSQLLogFiles在实际位置指示。

通过这种方式,您可以简单地将文件位置编写为本地路径,但仍可以从远程共享访问该文件。

干杯,本