web-dev-qa-db-ja.com

SQL ServerエージェントジョブでSSISパッケージを実行するステップを作成するにはどうすればよいですか?

SQL Serverエージェントを実行するための自動ジョブを作成しようとしています。ジョブは私のSSISパッケージを実行することになっています。

ここに私が持っているものがあります:

EXEC sp_add_job @job_name = 'My Job'
            ,@description = 'My First SSIS Job'
            ,@job_id = @jobid OUTPUT

EXEC sp_add_jobstep @job_id =@jobid
                    ,@step_name = N'Upload Data'
                    ,@step_id = 1
                    ,@command=N'/FILE "D:\Installs\Upload.dtsx"'
EXEC sp_add_jobstep @job_id = @jobid
                    ,@step_name = N'Download Data'
                    ,@step_id = 2
                    ,@command=N'/FILE "D:\Installs\Download.dtsx"'

残念ながら、これを実行すると、エラーが表示されます

「/」付近の構文が正しくありません

/FILE私のコマンドで。

@コマンド内で使用する適切な構文に関するドキュメントがどこにもありません-/FILEどこかで見つけた古いコードのうち。ジョブでSSISパッケージを実行するための正しい構文は何ですか?

26
Slider345

質問でSQLスクリプトを実行しましたが、エラーは発生しませんでした。だから、私はあなたの場合にエラーの原因はわかりません。ただし、SQL Server Management Studioを介してSQL Server Agentにアクセスできる場合。グラフィカルユーザーインターフェイスを使用してジョブを作成する手順は次のとおりです。

  1. SQL Server Management Studioに移動します。 SQL Server Agentを展開し、[ジョブ]を右クリックして、スクリーンショット#1に示すようにNew Job...を選択します。

  2. 名前を指定すると、所有者がデフォルトでジョブを作成するアカウントになりますが、要件に応じて変更できます。必要に応じてカテゴリを割り当て、説明も入力します。スクリーンショット#2を参照してください。

  3. [ステップ]セクションで、スクリーンショット#に示されているNew...をクリックします。

  4. [新しいジョブステップ]ダイアログで、ステップ名を指定します。 [タイプ]から[SQL Server Inegration Services Package]を選択します。このステップはデフォルトでSQL Agent Service Accountの下で実行されます。パッケージソースをFile systemとして選択し、省略記号をクリックしてパッケージパスを参照します。これにより、パッケージパスが設定されます。スクリーンショット#4を参照してください。ステップをSQL Agent Service Accountの下で実行したくない場合は、ステップ#8-9を参照して方法を確認してください。別のアカウントを使用できます。

  5. パッケージのSSIS構成ファイル(.dtsConfig)がある場合は、構成タブをクリックし、スクリーンショット#5に示すように構成ファイルを追加します。

  6. [OK]をクリックすると、スクリーンショット#6に示すように、ステップ1にパッケージがあります。同様に、さまざまなステップを作成できます。

  7. ジョブが作成されたら、ジョブを右クリックしてScript Job as --> CREATE To --> New Query Editor Windowを選択し、スクリーンショット#7に示すようにスクリプトを生成できます。

  8. 別のアカウントでSSISステップを実行するには、Management Studioで、スクリーンショット#8に示すようにSecurity --> right-click on Cedentials --> select New Credential...に移動します。

  9. New Credentialダイアログで、SQLジョブでSSISステップを実行する資格情報名、Windowsアカウント、およびパスワードを指定します。スクリーンショット#9を参照してください。スクリーンショット#1に示すように、資格情報が作成されます。

  10. 次に、プロキシを作成する必要があります。 Management Studioで、スクリーンショット#11に示すようにSQL Server Agent --> Proxies --> right-click on SSIS Package Execution --> select New Proxy...に移動します。

  11. スクリーンショット#12に示すように、[新しいプロキシアカウント]ウィンドウで、プロキシ名を指定し、新しく作成した資格情報を選択し、説明を入力して、SQL Server Integration Servicesパッケージを選択します。スクリーンショット#1に示すように、プロキシアカウントを作成する必要があります。

  12. ここで、SQLジョブのステップに戻ると、新しく作成されたプロキシアカウントがRun asドロップダウンに表示されるはずです。スクリーンショット#14を参照してください。

お役に立てば幸いです。

スクリーンショット#1:

1

スクリーンショット#2:

2

スクリーンショット#3:

3

スクリーンショット#4:

4

スクリーンショット#5:

5

スクリーンショット#6:

6

スクリーンショット#7:

7

スクリーンショット#8:

8

スクリーンショット#9:

9

スクリーンショット#10:

10

スクリーンショット#11:

11

スクリーンショット#12:

12

スクリーンショット#13:

13

スクリーンショット#14:

14

73
user756519

Sp_add ... procsを使用してジョブを構築している場合、サブシステムを明示的に設定する必要があると思います。

EXEC sp_add_jobstep @job_id = @jobid,
@step_name = N'Upload Data',
@step_id = 1,
@subsystem = 'DTS',
@command=N'/FILE "D:\Installs\Upload.dtsx"'

これは、@ Sivaのスクリーンショット#4 'Type' = 'SQL Server Integration Services Package'と同等です。

サブシステムの完全なリストについては、 this MSDNの記事を参照してください。

[〜#〜] edit [〜#〜]:「TSQL」がデフォルトであるため、現在の設定では「/ FILE "D :\ Installs\Upload.dtsx "'をT-SQLコマンドとして。

9
DaveE