创建 CmdExec 作业步骤

本主题说明如何使用 SQL Server Management Studio、Transact-SQL 或 SQL Server 管理对象在 SQL Server 2012 中创建和定义使用可执行程序或操作系统命令的 Microsoft SQL Server 代理作业步骤。

本主题内容

  • 开始之前: 

    安全性

  • 若要创建 CmdExec 作业步骤,可使用:

    SQL Server Management Studio

    Transact-SQL

    SQL Server 管理对象

开始之前

安全性

默认情况下,只有 sysadmin 固定服务器角色的成员可以创建 CmdExec 作业步骤。 除非 sysadmin 用户创建一个代理帐户,否则这些作业步骤将在 SQL Server 代理服务帐户的上下文中运行。 如果不属于 sysadmin 角色成员的用户具有访问 CmdExec 代理帐户的权限,则也可以创建 CmdExec 作业步骤。

权限

有关详细信息,请参阅实现 SQL Server 代理安全性

用于“返回首页”链接的箭头图标[Top]

使用 SQL Server Management Studio

创建 CmdExec 作业步骤

  1. 在**“对象资源管理器”**中,连接到 SQL Server 数据库引擎实例,再展开该实例。

  2. 展开**“SQL Server 代理”,创建一个新作业或右键单击一个现有作业,再单击“属性”**。

  3. 在**“作业属性”对话框中,单击“步骤”页,再单击“新建”**。

  4. 在**“新建作业步骤”对话框中,键入作业的“步骤名称”**。

  5. 在**“类型”列表中,选择“操作系统(CmdExec)”**。

  6. 在**“运行身份”**列表中,选择具有作业将使用的凭据的代理帐户。 默认情况下,CmdExec 作业步骤在 SQL Server 代理服务帐户的上下文中运行。

  7. 在**“成功命令的进程退出代码”**框中,输入一个介于 0 到 999999 之间的值。

  8. 在**“命令”**框中,输入操作系统命令或可执行程序。 请参阅“使用 Transact T-SQL”中的示例。

  9. 单击**“高级”**页设置以下作业步骤选项,例如:当该作业步骤成功或失败时将执行的操作、SQL Server 代理应该尝试执行该作业步骤的次数,以及 SQL Server 代理将作业步骤输出写入哪个文件。 只有 sysadmin 固定服务器角色的成员才可以将作业步骤输出写入到操作系统文件中。

用于“返回首页”链接的箭头图标[Top]

使用 Transact-SQL

创建 CmdExec 作业步骤

  1. 在**“对象资源管理器”**中,连接到数据库引擎实例。

  2. 在标准菜单栏上,单击**“新建查询”**。

  3. 将以下示例复制并粘贴到查询窗口中,然后单击**“执行”**。

    -- creates a job step that that uses CmdExec
    USE msdb;
    GO
    EXEC sp_add_jobstep
        @job_name = N'Weekly Sales Data Backup',
        @step_name = N'Set database to read only',
        @subsystem = N'CMDEXEC',
        @command = C:\clickme_scripts\SQL11\PostBOLReorg GetHsX.exe', 
        @retry_attempts = 5,
        @retry_interval = 5 ;
    GO
    

有关详细信息,请参阅 sp_add_jobstep (Transact-SQL)

用于“返回首页”链接的箭头图标[Top]

使用 SQL Server 管理对象

创建 CmdExec 作业步骤

通过使用所选的编程语言(如 Visual Basic、Visual C# 或 PowerShell)来使用 JobStep 类。 有关详细信息,请参阅 SQL Server 管理对象 (SMO)

用于“返回首页”链接的箭头图标[Top]