创建 CmdExec 作业步骤
重要
Azure SQL 托管实例,目前大多数但并非所有 SQL Server 代理功能都受支持。 有关详细信息,请参阅 Azure SQL 托管实例 T-SQL 差异与 SQL Server。
本主题介绍如何在 SQL Server 中创建和定义一个使用可执行程序或操作系统命令的 Microsoft SQL Server 代理作业步骤,该步骤可以通过使用 SQL Server Management Studio、Transact-SQL 或 SQL Server 管理对象来实现。
开始之前
安全
默认情况下,只有 sysadmin 固定服务器角色的成员才能创建 CmdExec 作业步骤。 除非 sysadmin 用户创建代理帐户,否则这些作业步骤在 SQL Server 代理服务帐户的上下文下运行。 如果用户不是 sysadmin 角色的成员,则可以创建 CmdExec 作业步骤(如果他们有权访问 CmdExec 代理帐户)。
权限
有关详细信息,请参阅 实现 SQL Server 代理安全性。
使用 SQL Server Management Studio
创建 CmdExec 作业步骤
在 对象资源管理器中, 连接到 SQL Server 数据库引擎的实例,然后展开该实例。
展开 SQL Server 代理,创建新作业或右键单击现有作业,然后单击 属性。
在 作业属性 对话框中,单击 步骤 页,然后单击 新建。
在 “新建作业步骤”对话框中,键入作业 步骤名称。
在 类型 列表中,选择 操作系统 (CmdExec)。
在 “以 身份运行”列表中,选择一个代理帐户,该帐户具有作业所需使用的凭据。 默认情况下,CmdExec 作业步骤在 SQL Server 代理服务帐户的上下文下运行。
在成功命令 框中的“ 进程退出代码”框中,输入从 0 到999999的值。
在 命令 框中,输入操作系统命令或可执行程序。 有关示例,请参阅“使用 Transact T-SQL。
单击“高级”页可设置作业步骤选项,例如:作业步骤成功或失败时要执行的作、SQL Server 代理应尝试执行作业步骤的次数,以及 SQL Server 代理可以写入作业步骤输出的文件。 只有 sysadmin 固定服务器角色的成员才能将作业步骤输出写入作系统文件。
使用 Transact-SQL
创建 CmdExec 作业步骤
在 对象资源管理器中,连接到数据库引擎的实例。
在标准栏上,单击“新建查询”。
将以下示例复制并粘贴到查询窗口中,然后单击 执行。
-- creates a job step 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)
使用 SQL Server 管理对象
创建 CmdExec 作业步骤
使用所选编程语言(如 Visual Basic、Visual C# 或 PowerShell)使用 JobStep 类。