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')
答
当你脚本出来 您可以利用@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在实际位置指示。
通过这种方式,您可以简单地将文件位置编写为本地路径,但仍可以从远程共享访问该文件。
干杯,本
谢谢,威胁,但问题是我说的,你Management Studio中指定作业步骤的结果输出文件。另外,我希望字符串在所有服务器上都相同,以防止我必须故障切换到备用服务器。 – 2009-01-23 15:20:54