适用于:SQL Server
从 SQL Server 2016 开始,ActiveX 子系统已停止使用。 将任何使用 ActiveX 脚本的现有作业步骤转换为 PowerShell 脚本作业步骤。 使用 PowerShell 进行将来的任何开发。
重要
Azure SQL 托管实例,目前大多数但并非所有 SQL Server 代理功能都受支持。 有关详细信息,请参阅 SQL Server Azure SQL 托管实例。
本主题介绍如何在 SQL Server 2014 及更早版本中,通过 SQL Server Management Studio、Transact-SQL 或 SQL Server 管理对象,创建和定义一个 Microsoft SQL Server 代理作业步骤,该步骤执行 ActiveX 脚本。
开始之前
限制和限制性条款
将在 SQL Server 的未来版本中删除此功能。 避免在新开发工作中使用此功能,并计划修改当前使用此功能的应用程序。
安全
有关详细信息,请参阅 实现 SQL Server 代理安全性。
使用 SQL Server Management Studio
创建 ActiveX 脚本作业步骤
在 对象资源管理器中, 连接到 SQL Server 数据库引擎的实例,然后展开该实例。
展开 SQL Server 代理,创建新作业或右键单击现有作业,然后单击 属性。 有关创建作业的详细信息,请参阅 创建作业。
在 作业属性 对话框中,单击 步骤 页,然后单击 新建。
在 “新建作业步骤”对话框中,键入作业 步骤名称。
在 类型 列表中,单击 ActiveX 脚本。
在运行方式列表中,选择代理帐户,该帐户具有作业所需的凭据。
选择编写脚本的 语言。 或者,单击“其他,然后输入要在其中编写脚本的 Microsoft ActiveX 脚本语言的名称。
在 命令 框中,输入将为作业步骤执行的脚本语法。 或者,单击 打开 并选择包含脚本语法的文件。
单击“高级”页可设置以下作业步骤选项:如果作业步骤成功或失败,SQL Server 代理应尝试执行作业步骤的次数,以及重试尝试的频率。
使用 Transact-SQL
创建 ActiveX 脚本作业步骤
在 对象资源管理器中,连接到数据库引擎的实例。
在标准栏上,单击“新建查询”。
将以下示例复制并粘贴到查询窗口中,然后单击 执行。
-- create an ActiveX Script job step written in VBScript that creates a restore point USE msdb; GO EXEC sp_add_jobstep @job_name = N'Weekly Sales Data Backup', @step_name = N'Create a restore point', @subsystem = N'ACTIVESCRIPTING', @command = N'Const RESTORE_POINT = 20 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\default") Set objItem = objWMIService.Get("SystemRestore") errResults = objItem.Restore(RESTORE_POINT)', @retry_attempts = 5, @retry_interval = 5 ; GO
有关详细信息,请参阅 sp_add_jobstep(Transact-SQL)。
使用 SQL Server 管理对象
创建 ActiveX 脚本作业步骤
使用所选编程语言(如 Visual Basic、Visual C# 或 PowerShell)使用 JobStep 类。