簡體   English   中英

sp_procoption未在存儲過程下對MSDB執行連接查詢

[英]sp_procoption is not executing the join query on MSDB under stored procedure

我正在使用sp_procoption提取失敗的作業詳細信息和備份信息,但是通過sp_procoption執行該操作不會生成任何結果,但是當我手動執行該過程時也可以正常工作。

是因為我在代碼中使用了連接,還是因為插入之前使用了waitfor延遲,以便讓sql服務器准備好幾秒鍾而沒有運氣,這是發生了嗎? 我真的很想知道解決此問題的原因。

 Use master go CREATE PROCEDURE [dbo].[job details] @JobName NVARCHAR (1000) AS IF OBJECT_ID('TempDB..#JobResults','U') IS NOT NULL DROP TABLE #JobResults CREATE TABLE #JobResults ( Job_ID UNIQUEIDENTIFIER NOT NULL, Last_Run_Date INT NOT NULL, Last_Run_Time INT NOT NULL, Next_Run_date INT NOT NULL, Next_Run_Time INT NOT NULL, Next_Run_Schedule_ID INT NOT NULL, Requested_to_Run INT NOT NULL, Request_Source INT NOT NULL, Request_Source_id SYSNAME COLLATE Database_Default NULL, Running INT NOT NULL, Current_Step INT NOT NULL, Current_Retry_Attempt INT NOT NULL, Job_State INT NOT NULL ) INSERT #JobResults EXECUTE master.dbo.xp_sqlagent_enum_jobs 1, ''; SELECT job.name AS [Job_Name], ( SELECT MAX(CAST( STUFF(STUFF(CAST(jh.run_date AS VARCHAR),7,0,'-'),5,0,'-') + ' ' + STUFF(STUFF(REPLACE(STR(jh.run_time,6,0),' ','0'),5,0,':'),3,0,':') AS DATETIME)) FROM msdb.dbo.sysjobs AS j INNER JOIN msdb.dbo.sysjobhistory AS jh ON jh.job_id = j.job_id AND jh.step_id = 0 WHERE j.[name] LIKE '%' + @JobName + '%' GROUP BY j.[name] ) AS [Last_Completed_DateTime], ( SELECT TOP 1 start_execution_date FROM msdb.dbo.sysjobactivity WHERE job_id = r.job_id ORDER BY start_execution_date DESC ) AS [Job_Start_DateTime], CASE WHEN r.running = 0 THEN CASE WHEN jobInfo.lASt_run_outcome = 0 THEN 'Failed' WHEN jobInfo.lASt_run_outcome = 1 THEN 'Success' WHEN jobInfo.lASt_run_outcome = 3 THEN 'Canceled' ELSE 'Unknown' END WHEN r.job_state = 0 THEN 'Success' WHEN r.job_state = 4 THEN 'Success' WHEN r.job_state = 5 THEN 'Success' WHEN r.job_state = 1 THEN 'In Progress' WHEN r.job_state = 2 THEN 'In Progress' WHEN r.job_state = 3 THEN 'In Progress' WHEN r.job_state = 7 THEN 'In Progress' ELSE 'Unknown' END AS [Run_Status_Description] FROM #JobResults AS r LEFT OUTER JOIN msdb.dbo.sysjobservers AS jobInfo ON r.job_id = jobInfo.job_id INNER JOIN msdb.dbo.sysjobs AS job ON r.job_id = job.job_id WHERE job.[enabled] = 1 AND job.name LIKE '%' + @JobName + '%' GO 

啟動過程不能包含INPUTOUTPUT參數。 列出的過程需要輸入參數@JobName 嘗試創建不帶參數或默認設置的存儲過程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM