当我打算对我们的 Ola Hallengren 索引脚本进行更改时,我注意到在一些 SQL Server 上,我们将索引作业作为“操作系统 (CmdExec)”步骤运行,而不是被称为“Transact-SQL 脚本 (T- SQL)”步骤。
我正在使用 CMS 来部署它,sp_update_jobstep
并且我希望一切都作为“Transact-SQL 脚本(T-SQL)”。
似乎没有办法更改步骤(除非我在这篇 Microsoft 文章中混淆了术语)
use msdb
go
exec sp_update_jobstep @job_name = N'IndexOptimize_USER_DATABASES',
@step_id = 1,
@command = N'EXECUTE [dbo].[IndexOptimize], @Databases = ''USER_DATABASES'', @LogToTable = ''Y'', @LockTimeOut = 300'
有没有办法改变步骤类型?
您可以使用 的
@subsystem=N'TSQL'
参数sp_update_jobstep
来更改 Step-Type。有关有效子系统值的列表,请参阅sp_add_jobstep 。例子:
更一般地说,如果您想为代理作业编写更改脚本并且您不确定如何 - 您可以使用 ⎎ Script ▾GUI 中的按钮将您在当前会话中进行的所有更改编写脚本。
例如,如果我想将同一个作业更改
IndexOptimize_USER_DATABASES
为不再登录到表,我会按照下面的屏幕截图步骤进行操作.........这会给我一个带有以下文本的新查询窗口。