创建 PowerShell 脚本作业步骤

适用于:SQL ServerAzure SQL 托管实例

重要

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

本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 创建和定义在 SQL Server 中执行 PowerShell 脚本的 SQL Server 代理作业步骤。

开始之前

安全

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

我们正在侦听: 如果在本文中找到过时或不正确的内容,例如步骤或代码示例,请告诉我们。 在本页面底部的 反馈 部分中,可以单击 此页面 按钮。 我们阅读了有关 SQL 的每一项反馈,通常是第二天。 谢谢。

使用 SQL Server Management Studio

创建 PowerShell 脚本作业步骤

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

  2. 展开 SQL Server 代理,创建新作业或右键单击现有作业,然后单击 属性。 有关创建作业的详细信息,请参阅 创建作业

  3. 作业属性 对话框中,单击 步骤 页,然后单击 新建

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

  5. 类型 列表中,单击 PowerShell

  6. 运行方式 列表中,选择一个代理帐户,该帐户拥有作业将使用的凭据。

  7. 命令 框中,输入将为作业步骤执行的 PowerShell 脚本语法。 或者,单击 打开 并选择包含脚本语法的文件。 有关 PowerShell 脚本的示例,请参阅下面的 Using Transact-SQL

  8. 单击“高级”页可设置以下作业步骤选项:如果作业步骤成功或失败,SQL Server 代理应尝试执行作业步骤的次数,以及重试尝试的频率。

使用 Transact-SQL

创建 PowerShell 脚本的作业步骤

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

  2. 在标准栏上,单击“新建查询”

  3. 将以下示例复制并粘贴到查询窗口中,然后单击 执行

    -- creates a PowerShell job step that finds the processes
    -- that use more than 1000 MB of memory and kills them  
    USE msdb;  
    GO  
    EXEC sp_add_jobstep  
        @job_name = N'Weekly Sales Data Backup',  
        @step_name = N'Kills all processes that use more than 1000 MB of memory',  
        @subsystem = N'PowerShell',  
        @command = N'Get-Process | Where-Object { $_.WS -gt 1000MB } | Stop-Process',   
        @retry_attempts = 5,  
        @retry_interval = 5 ;  
    GO  
    

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

使用 SQL Server 管理对象

创建 PowerShell 脚本作业步骤

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