在 SQL Server 代理中创建 Transact-SQL 作业步骤

适用于:SQL ServerAzure SQL 托管实例

重要

Azure SQL 托管实例,目前大多数但并非所有 SQL Server 代理功能都受支持。 有关详细信息,请参阅 Azure SQL 托管实例 T-SQL 与 SQL Server 的差异 或 SQL 托管实例中的 SQL 代理作业限制

本文介绍如何创建 SQL Server 代理作业步骤,该作业步骤使用 SQL Server Management Studio、Transact-SQL 或 SQL Server 管理对象在 SQL Server 中执行 Transact-SQL 脚本。

这些作业步骤脚本可能会调用存储过程和扩展存储过程。 单个 Transact-SQL 作业步骤可以包含多个批处理和嵌入式 GO 命令。 有关创建作业的详细信息,请参阅 “创建 SQL Server 代理作业”。

安全性

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

使用 SQL Server Management Studio

  1. 对象资源管理器中, 连接到 SQL Server 数据库引擎的实例,然后展开该实例。

  2. 展开 SQL Server 代理,创建新作业或右键单击现有作业,然后选择“ 属性”。

  3. “作业属性 ”对话框中,选择“ 步骤 ”页,然后选择“ 新建”。

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

  5. “类型”列表中,选择 Transact-SQL 脚本(TSQL)。

  6. “命令 ”框中键入 Transact-SQL 命令批处理,或选择“ 打开 ”以选择要用作命令的 Transact-SQL 文件。

  7. 选择 “分析 ”以检查语法。

  8. 语法正确时,将显示消息“分析成功”。 如果找到错误,请更正语法,然后再继续。

  9. 选择“ 高级 ”页以设置作业步骤选项,例如:

    • 作业步骤成功或失败时要采取的措施。
    • SQL Server 代理应尝试执行作业步骤的次数,以及
    • SQL Server 代理可以将作业步骤的输出结果写入的文件或表。

    只有 sysadmin 固定服务器角色的成员才能将作业步骤输出写入作系统文件。 所有 SQL Server 代理用户可以将输出记录到表。

  10. 如果你是 sysadmin 固定服务器角色的成员,并且想要以其他 SQL 登录名身份运行此作业步骤,请从 “以用户身份运行 ”列表中选择 SQL 登录名。

使用 Transact-SQL

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

  2. 在标准栏上,选择“新建查询” 。

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

    USE msdb;
    GO
    
    EXECUTE sp_add_jobstep
        @job_name = N'Weekly Sales Data Backup',
        @step_name = N'Set database to read only',
        @subsystem = N'TSQL',
        @command = N'ALTER DATABASE SALES SET READ_ONLY',
        @retry_attempts = 5,
        @retry_interval = 5;
    GO
    

有关详细信息,请参阅 sp_add_jobstep

使用 SQL Server 管理对象

使用您选择的编程语言(如 Visual Basic、C# 或 PowerShell)来使用JobStep类。