Sql-Server-Agent

在編寫 SQL Server 代理作業腳本時,是否可以在 @command 設置行中使用 @@servername

  • October 13, 2016

我正在嘗試編寫 SQL Server 代理作業腳本,以便可以在多台伺服器上執行一個腳本來設置相同的作業。我們擁有相同的使用者,並將在不同的伺服器上使用相同的作業名稱。但是,有一個部分我正在努力解決,那就是獲取相關伺服器的伺服器詳細資訊作為腳本的一部分。最初的腳本是這樣的:

@command=N'/ISSERVER "\"\SSISDB\SSP SSIS\step1.dtsx\"" /SERVER (servername) /Par "\"$ServerOption::LOGGING_LEVEL(Int16)\"";1 /Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";True /CALLERINFO SQLAGENT /REPORTING E', 

我知道我可以用 localhost 替換我們的伺服器名稱,但是您只能從執行作業的伺服器上查看配置設置,這並不理想,因為不是每個人都可以訪問所有伺服器,尤其是生產伺服器.

我希望使用"/SERVER' + @@SERVERNAME + '/Par",但在破壞@command 行的字元串時,我在 + 符號處收到不正確的語法錯誤,我找不到任何方法讓它接受這個命令。

在編寫作業腳本時使用SQL Server 代理令牌,例如

/SERVER $(ESCAPE_NONE(SRVR))

引用自:https://dba.stackexchange.com/questions/152163