启动作业
适用于: 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
在 “对象资源管理器” 中,连接到 SQL Server 数据库引擎的实例,然后展开该实例。
展开 “SQL Server 代理” ,再展开 “作业”。 根据您希望作业以何种方式启动,执行下列操作之一:
如果使用的是单台服务器或目标服务器,或者正在一台主服务器上运行一个本地服务器作业,请右键单击要启动的作业,然后选择“启动作业”。
要启动多个作业,请右键单击“作业活动监视器”,然后选择“查看作业活动”。 在作业活动监视器中,可以选择多个作业,右键单击所选作业,再选择“启动作业”。
如果使用的是主服务器并且希望所有目标服务器同时运行作业,请右键单击要启动的作业、选择“启动作业”,然后选择“在所有目标服务器上启动”。
如果使用的是主服务器并且希望指定运行作业的目标服务器,请右键单击要启动的作业、选择“启动作业”,然后选择“在特定的目标服务器上启动”。 在 “发布下载指令” 对话框中,选中 “以下目标服务器” 复选框,然后选择运行该作业的每台目标服务器。
使用 Transact-SQL
在 “对象资源管理器” 中,连接到 数据库引擎的实例。
在标准栏上,选择“新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后选择“执行”。
-- 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 代理中使用脚本。
打开 SQL Server Management Studio (SSMS)。
连接到相应的 SQL Server 实例。
展开 SQL Server 代理节点。
右键单击“作业”,然后选择“新建作业”。
在“新建作业”对话框中,输入作业名称和其他所需的详细信息。
转到“步骤”页,然后选择“新建”以创建新的作业步骤。
在“新建作业步骤”对话框中:
将“类型”设置为 PowerShell。
在“命令”字段中,输入 PowerShell 脚本以及参数,例如:
.\YourScript.ps1 -ServerInstance "YourServerInstance" -JobName "YourJobName"
根据需要设置任何其他作业属性(计划、警报、通知等)。
选择“确定”以保存作业。
脚本说明
- 参数:该脚本接受 $ServerInstance 和 $JobName 这两个参数,分别是 SQL Server 实例和作业名称。
- 加载 SMO:Add-Type cmdlet 用于加载 SQL Server 管理对象 (SMO) 程序集。
- 服务器对象:使用 $ServerInstance 参数创建一个新服务器对象。
- 获取作业:该脚本会检索使用 $JobName 参数指定的作业。
- 启动作业:如果找到该作业,则使用 Start 方法启动作业。 该脚本会输出成功消息。 如果未找到该作业,则会显示一条错误消息。
有关详细信息,请参阅 SQL Server 管理对象 (SMO)。