2016-10-07 37 views
1

サーバー上で実行されているすべてのジョブを無効にする必要があります。私はSQLエージェントGUIのどちらかから、与えられたジョブとその関連のスケジュールをチェックするとスクリプトでスケジュールを無効にしてもSQL Serverエージェントジョブが実行されています

declare @t table (schedule_id int, [name] varchar(300)) 

    update msdb.dbo.sysschedules 
      set enabled = 0 
    output inserted.schedule_id, inserted.name into @t 
    from msdb.dbo.sysjobs j 


    join msdb.dbo.sysjobschedules js 
    on j.job_id = js.job_id 
    join msdb.dbo.sysschedules s 
    on js.schedule_id = s.schedule_id 
    where j.[name] not like 'DB -%' and j.[name] not like 'sys%' and j.[name] not like 'Maintenance%' 

    select * from @t 

、またはSQLを介して、私はスケジュールが無効になって見ることができます:私は、次のコードを実行しました。しかし、ジョブはまだ実行されており、msdb.dbo.sysjobschedulesをチェックすると、将来、次回の実行日を見ることができます。

私がオンラインで見たことは、この変更を取り上げるためにリフレッシュする必要があるバックグラウンドスレッドがあることを示唆していますか?そして、それは、私はsp_sqlagent_refresh_job(助けていない)を実行するか、またはサーバーを再起動する必要があります。

私はサーバーを再起動できますが、他の誰かがこの動作を見て、原因を知っていて、別の方法で修正する方法を知っていれば不思議です。

答えて

1

なぜあなたはスケジュールを気にしませんか?あなたは仕事がsp_stop_jobを使用停止する必要がある場合

EXEC msdb.dbo.sp_update_job @job_id = 'CCCF8FC0-FCD4-4260-9A48-518AF5826297', @enabled = 0; 
EXEC msdb.dbo.sp_update_job @job_id = '48BB41E6-6BEC-452B-8D42-760AECDBB808', @enabled = 0; 

:あなたが生成されたクエリが表示されますあなたEXECPRINT @sql場合

DECLARE @sql nvarchar(max) 

;WITH cte AS (
SELECT j.job_id, 
     j.[name] 
FROM msdb.dbo.sysjobs j 
WHERE j.[name] not like 'DB -%' 
    and j.[name] not like 'sys%' 
    and j.[name] not like 'Maintenance%' 
) 

SELECT @sql = (
    SELECT 'EXEC msdb.dbo.sp_update_job @job_id = '''+CAST(job_id as nvarchar(max))+''', @enabled = 0;'+CHAR(10) 
    FROM cte 
    FOR XML PATH('') 
) 

EXEC sp_executesql @sql 

:すべてのジョブを無効にするには、動的SQLでsp_update_jobを使用してください。

+0

これは良い解決策です。ありがとうございます。私は主に、私がスケジュールを実行し続ける原因となったものについて不思議です。私はmsdb.dbo.sysjobschedulesから次の実行日をクリアしたかどうか、それはそれを行うだろうか? – Quicksilver

+0

正しい方法で、そのテーブルに関するメモが1つあります:20分ごとに更新されます。したがって、sysschedulesでスケジュールを無効にした場合、sysjobschedulesは約20分後に更新されるため、ジョブスケジュールがすぐに変更されることはありません。 – gofr1

+0

スケジュールを無効にしても、以前に開始したジョブが実行されます。それらを停止するには、sp_stop_jobを使用します。 – gofr1

関連する問題