2009-01-23 87 views
0

有誰知道,如果有一種方法可以在SQL Server喜歡的文件路徑中指定「本機」?SQL 2005:代理作業步驟輸出文件命名

我有一個代理作業,我想腳本到我的所有服務器上。它輸出到本地計算機上的文件,所以我想腳本文件名爲

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

另一個原因是我打算使用日誌傳送進行災難恢復,我希望工作提供相同的任何服務器他們正在運行。該腳本將作業設置正常,但是當我運行作業時,出現「無法打開步驟輸出文件」錯誤。我想我已經取消了共享和文件夾權限:它可以與C:\<folder-name>\<file-name>正常工作。

回答

1

你有沒有試過@@ SERVERNAME?

SELECT @@SERVERNAME 

或者你可以用這個,如果你有多個SQL Server實例可以使用第二個運行

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

謝謝,威脅,但問題是我說的,你Management Studio中指定作業步驟的結果輸出文件。另外,我希望字符串在所有服務器上都相同,以防止我必須故障切換到備用服務器。 – 2009-01-23 15:20:54

0

當你腳本出來 您可以利用@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

0

將文件夾放在所有機器的相同位置。

C:\ SharedSQLLogFiles .....

如果你不想讓他們在相同的位置,創建一個路口C:\ SharedSQLLogFiles在實際位置指示。

通過這種方式,您可以簡單地將文件位置編寫爲本地路徑,但仍可以從遠程共享訪問該文件。

乾杯,本

相關問題