適用対象:SQL Server
Azure SQL Managed Instance
重要
Azure SQL Managed Instance では、SQL Server エージェントのほとんどの機能が現在サポートされているわけではありません。 詳細については、Azure SQL Managed Instance T-SQL と SQL Server の違いに関するページ、または「SQL Managed Instance 内での SQL Agent ジョブの制限事項」を参照してください。
このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server で PowerShell スクリプトを実行する SQL Server エージェント ジョブ ステップを作成して定義する方法について説明します。
開始する前に
セキュリティ
詳細については、「SQL Server エージェント セキュリティの実装」を参照してください。
SQL Server Management Studio の使用
PowerShell スクリプト ジョブ ステップを作成するには
オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続 し、そのインスタンスを展開します。
SQL Server エージェント を展開し、新しいジョブを作成するか、既存のジョブを右クリックして、[プロパティ] を選択します。 ジョブの作成に関する詳細については、ジョブの作成を参照してください。
[ジョブのプロパティ] ダイアログで [ステップ] ページをクリックして、[新規作成] をクリックします。
新しいジョブ ステップ ダイアログで、ジョブ ステップ名 を入力します。
[種類] ボックスの一覧で [PowerShell] をクリックします。
[実行するアカウント名] ボックスの一覧で、ジョブで使用する資格情報を備えたプロキシ アカウントをクリックします。
[コマンド] ボックスに、ジョブ ステップで実行する PowerShell スクリプト構文を入力します。 または、[ を開く] をクリックし、スクリプト構文を含むファイルを選択します。 PowerShell スクリプトの例については、以下の「 Transact-SQL の使用 」を参照してください。
[詳細] ページをクリックして、ジョブ ステップのオプションを設定します。ジョブ ステップが成功または失敗した場合に実行するアクション、SQL Server エージェントがジョブ ステップを実行する回数、再試行の頻度を設定します。
Transact-SQL の使用
PowerShell スクリプト ジョブ ステップを作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。
-- 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 クラスを使用します。