启动作业

适用于: SQL Server Azure SQL 托管实例

重要

Azure SQL 托管实例目前支持大多数(但不是所有)SQL Server 代理功能。 有关详细信息,请参阅 Azure SQL 托管实例与 SQL Server 的 T-SQL 区别

本文介绍如何使用 SQL Server Management Studio、Transact-SQL 或 SQL Server 管理对象开始运行 SQL Server 中的 Microsoft SQL Server 代理作业。

作业是 SQL Server 代理执行的一系列指定操作。 SQL Server 代理作业可以在一个本地服务器上运行,也可以在多个远程服务器上运行。

开始之前

安全性

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

使用 SQL Server Management Studio

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

  2. 展开 “SQL Server 代理” ,再展开 “作业”。 根据您希望作业以何种方式启动,执行下列操作之一:

    • 如果使用的是单台服务器或目标服务器,或者正在一台主服务器上运行一个本地服务器作业,请右键单击要启动的作业,然后选择“启动作业”

    • 要启动多个作业,请右键单击“作业活动监视器”,然后选择“查看作业活动”。 在作业活动监视器中,可以选择多个作业,右键单击所选作业,再选择“启动作业”

    • 如果使用的是主服务器并且希望所有目标服务器同时运行作业,请右键单击要启动的作业、选择“启动作业”,然后选择“在所有目标服务器上启动”

    • 如果使用的是主服务器并且希望指定运行作业的目标服务器,请右键单击要启动的作业、选择“启动作业”,然后选择“在特定的目标服务器上启动”。 在 “发布下载指令” 对话框中,选中 “以下目标服务器” 复选框,然后选择运行该作业的每台目标服务器。

使用 Transact-SQL

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

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

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

    -- starts a job named Weekly Sales Data Backup.
    USE msdb ;
    GO
    
    EXEC dbo.sp_start_job N'Weekly Sales Data Backup' ;
    GO
    

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

使用编程语言

通过使用所选编程语言(如 Visual Basic、Visual C# 或 SQL PowerShell)来调用 Job 类的 Start 方法。

SQL PowerShell

下面是一个可在 SQL Server 代理中带参数使用的 PowerShell 脚本。 此脚本演示如何使用传入脚本的参数启动 SQL Server 代理作业。

# Parameters
param(
    [string]$ServerInstance,
    [string]$JobName
)

# Load the SMO assembly
Add-Type -AssemblyName "Microsoft.SqlServer.SMO"

# Create a server object
$server = New-Object Microsoft.SqlServer.Management.Smo.Server $ServerInstance

# Get the job you want to start
$job = $server.JobServer.Jobs[$JobName]

# Start the job
if ($job) {
    $job.Start()
    Write-Output "The job '$JobName' on server '$ServerInstance' has been started successfully."
} else {
    Write-Output "The job '$JobName' was not found on server '$ServerInstance'."
}

如何在 SQL Server 代理中使用脚本。

  1. 打开 SQL Server Management Studio (SSMS)。

  2. 连接到相应的 SQL Server 实例。

  3. 展开 SQL Server 代理节点。

  4. 右键单击“作业”,然后选择“新建作业”。

  5. 在“新建作业”对话框中,输入作业名称和其他所需的详细信息。

  6. 转到“步骤”页,然后选择“新建”以创建新的作业步骤。

  7. 在“新建作业步骤”对话框中:

    1. 将“类型”设置为 PowerShell。

    2. 在“命令”字段中,输入 PowerShell 脚本以及参数,例如:

      .\YourScript.ps1 -ServerInstance "YourServerInstance" -JobName "YourJobName"
      
  8. 根据需要设置任何其他作业属性(计划、警报、通知等)。

  9. 选择“确定”以保存作业。

脚本说明

  • 参数:该脚本接受 $ServerInstance 和 $JobName 这两个参数,分别是 SQL Server 实例和作业名称。
  • 加载 SMO:Add-Type cmdlet 用于加载 SQL Server 管理对象 (SMO) 程序集。
  • 服务器对象:使用 $ServerInstance 参数创建一个新服务器对象。
  • 获取作业:该脚本会检索使用 $JobName 参数指定的作业。
  • 启动作业:如果找到该作业,则使用 Start 方法启动作业。 该脚本会输出成功消息。 如果未找到该作业,则会显示一条错误消息。

有关详细信息,请参阅 SQL Server 管理对象 (SMO)