我們在SQL Server中有系統表,如sysjobs
,syscomments
,sysobjects
。如何查找使用存儲過程的SQL Server作業?
我需要找到使用特定存儲過程在SQL Server代理中運行的SQL Server作業的列表。
諸如此類..
select *
from sysobjects
where name = 'sp_mystoredprocedure'
我需要找到其SQL Server作業所使用的我傳遞作爲輸入參數的存儲過程。
我們在SQL Server中有系統表,如sysjobs
,syscomments
,sysobjects
。如何查找使用存儲過程的SQL Server作業?
我需要找到使用特定存儲過程在SQL Server代理中運行的SQL Server作業的列表。
諸如此類..
select *
from sysobjects
where name = 'sp_mystoredprocedure'
我需要找到其SQL Server作業所使用的我傳遞作爲輸入參數的存儲過程。
您需要查詢sysjobsteps,但有沒有像它給你確切的存儲過程,但你可以用關鍵字搜索..
SELECT j.job_id,
s.srvname,
j.name,
js.step_id,
js.command,
j.enabled
FROM dbo.sysjobs j
JOIN dbo.sysjobsteps js
ON js.job_id = j.job_id
JOIN master.dbo.sysservers s
ON s.srvid = j.originating_server_id
WHERE js.command LIKE N'%KEYWORD_SEARCH%'
來源: https://stackoverflow.com/a/11828818/3585278
SELECT j.name
FROM msdb.dbo.sysjobs AS j
WHERE EXISTS
(
SELECT 1 FROM msdb.dbo.sysjobsteps AS s
WHERE s.job_id = j.job_id
AND s.command LIKE '%procedurename%'
);