0

必要なストアド プロシージャを 1 時間ごとに SQL Server に強制的に呼び出させようとしています。

以下の記事を読みました。

それらは非常に大きく、あまり単純ではありません。

次のSQLコードが私のタスクに適していることを誰でも確認できますか:

USE msdb ;
GO
EXEC dbo.sp_add_job
    @job_name = N'Exec RemoveOldCsvImportData' ;
GO
EXEC sp_add_jobstep
    @job_name = N'Exec RemoveOldCsvImportData',
    @step_name = N'execute stored procedure',
    @subsystem = N'TSQL',
    @command = N'exec RemoveOldCsvImportData', 
    @retry_attempts = 5,
    @retry_interval = 5 ;
GO
EXEC dbo.sp_add_schedule
    @schedule_name = N'RunOnce',
    @freq_type = 4,
    @freq_interval = 1,
    @freq_subday_type = 0x8,
    @freq_subday_interval = 1,
    @active_start_time = 233000 ;
USE msdb ;
GO
EXEC sp_attach_schedule
   @job_name = N'Exec RemoveOldCsvImportData',
   @schedule_name = N'RunOnce';
GO
EXEC dbo.sp_add_jobserver
    @job_name = N'Exec RemoveOldCsvImportData';
GO 
4

4 に答える 4

4

私の提案は、ウィザードを使用してジョブを作成し、それをスクリプト化してから、スクリプトに使用することです。あなたがやろうとしているような仕事を作成することは、難解なプロセスです。最終的には取得できますが、これが 1 回限りの場合は、ウィザード ルートを使用すると時間を大幅に節約できます。

于 2012-07-12T10:20:59.990 に答える
2

真ん中のスプリアスUSE msdb ;は別として、見た目は良く、正常に動作します。実行してみませんか?希望どおりでない場合は、いつでもジョブを削除できます。

于 2012-07-12T09:34:27.470 に答える
0

SQL Serverインスタンスでこのコードを実行すると、スケジュールとして「毎日23:30:00から23:59:59まで1時間ごとに発生します」と表示されますが、これは希望どおりではないと思います。

次のSQLコードが私のタスクに適していることを誰かが確認できますか

回答:いいえ、正しくありません。

BenThulとDavidMが答えを提案しているように、コードを試してジョブをチェックし、目的の動作を確認することができます。また、を右クリックして新しいジョブを作成することをお勧めしJobsますSQL Server Agent。を選択しNew Job...ます。

于 2012-07-12T09:35:18.327 に答える
0

SQL ジョブ エージェントからスクリプトを生成し、それを一方向で実行できます。もう 1 つの方法は、ウィザードから Window Task Schedule を使用してタスクを生成することです。そのためには、マイ コンピューターに移動します --> それを右クリックし、[管理] オプションを選択します。サーバーマネージャーが開きます。構成オプションに移動し、[タスク スケジューラ] を選択します。アクションタブのフォームの右側にあるタスク作成オプションからタスクを作成できます。ここからジョブを生成する非常に簡単な方法です。実際、私はプロジェクトの要件にも同じものを使用しています。

その中で、毎日12:00に1つのストアプロシージャを1回実行するタスクを作成するだけです。したがって、そのスクリプトを実行せず、代わりにスクリプトですべてのことを行う場合も、同じ方法で行うことができます。

于 2012-07-12T10:41:17.400 に答える