Skip to content

Dirceu Resende

DBA SQL Server e Analista de BI (PowerBI, SSAS, SSIS, SSRS)

  • Consultoria
    • Consultoria de BI
    • Consultoria de Power BI
    • Consultoria SQL Server
  • Arquivo
  • Séries
    • Certificação
    • Segurança e Auditoria
    • Performance Tuning
    • O que mudou no T-SQL ?
    • Proteção de Dados
  • Vagas de Emprego
  • Eventos Data Platform
  • Sobre
  • Contato

Other Languages

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 536 outros assinantes

Visualizações do Blog

1.645.456 views

Categorias

  • Apache / .htaccess (9)
  • Banco de Dados (307)
    • MySQL / MariaDB (4)
    • Oracle (8)
    • SQL Server (293)
      • Auditoria (15)
      • Azure (2)
      • CLR (53)
      • Desenvolvimento de Query (83)
      • DMVs e Views de Catálogo (31)
      • Erros (22)
      • Ferramentas (12)
      • Formatação e Validação de Dados (23)
      • Funcionalidades pouco conhecidas (19)
      • Hacks (17)
      • Integrações (30)
      • Manipulação de Arquivos (13)
      • Manutenção (80)
      • Monitoramento (35)
      • O que não fazer (7)
      • OLE Automation (19)
      • Performance Tuning (22)
      • Python (1)
      • Segurança (39)
      • SQL Server Agent (11)
  • Business Intelligence (BI) (31)
    • Analysis Services (SSAS) (7)
    • Microsoft (7)
    • Power BI (12)
    • Reporting Services (SSRS) (8)
  • Carreira e Cursos (13)
  • Carreira, Cursos e Certificações (28)
  • Celulares (1)
  • Eventos e Palestras (63)
  • Programação (57)
    • C# (CSharp) (30)
    • CSS (1)
    • ERP (1)
    • Javascript (1)
    • PHP (17)
    • Powershell / CMD (8)
    • SQLCLR (4)
  • Sem categoria (10)
  • SEO (4)
  • Virtualização (5)

Microsoft MVP Data Platform

Minhas Certificações

Treinamentos

Arquivo de Posts

Posts recentes

  • Descontos da “Black Friday” nos Treinamentos de SQL Server (Comprem meu curso kkkkk) 27 de novembro de 2020
  • SQL Server – As “novas” funções GREATEST e LEAST 27 de novembro de 2020
  • SQL Server – Como saber a data do último login de um usuário 9 de novembro de 2020
  • Azure na Prática Gratuito #07 – Administrando Banco de Dados no Azure 5 de novembro de 2020
  • Analysis Services – An error occurred while opening the model on the workspace database. Reason: An unexpected error occurred (file ‘tmcachemanager.cpp’, function ‘TMCacheManager::CreateEmptyCollectionsForAllParents’) 5 de novembro de 2020
  • 14 de junho de 2014
  • 0
  • Banco de Dados DMVs e Views de Catálogo Manutenção SQL Server SQL Server Agent

Procurando uma string em um job (ou step) no SQL Server

Visualizações: 0
Tempo de Leitura: 2 minutos

Pessoal,
Boa noite.

Hoje vou trazer uma Stored Procedure bem legal pra vocês, que utiliza views de catálogo do banco de dados para procurar uma determinada string contida no título do job ou na linha de comando de algum step do job. Eu tentei formatar a saída para trazer informações bem completas sobre os resultados retornados. Até utilizei uma vez para listar todos os jobs ativos no banco com apenas 1 linha de código.. rs

stpBusca_String_Job:

Transact-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
USE [CLR]
GO
 
CREATE PROCEDURE [dbo].[stpBusca_String_Job] ( @String VARCHAR(100) )
AS BEGIN
 
    SELECT
        [sJOB].[name] AS [JobName] ,
        CASE [sJOB].[enabled]
          WHEN 1 THEN 'Yes'
          WHEN 0 THEN 'No'
        END AS [IsEnabled] ,
        [sJOB].[date_created] AS [JobCreatedOn] ,
        [sJOB].[date_modified] AS [JobLastModifiedOn] ,
        [sJSTP].[step_id] AS [StepNo] ,
        [sJSTP].[step_name] AS [StepName] ,
        [sDBP].[name] AS [JobOwner] ,
        [sCAT].[name] AS [JobCategory] ,
        [sJOB].[description] AS [JobDescription] ,
        CASE [sJSTP].[subsystem]
          WHEN 'ActiveScripting' THEN 'ActiveX Script'
          WHEN 'CmdExec' THEN 'Operating system (CmdExec)'
          WHEN 'PowerShell' THEN 'PowerShell'
          WHEN 'Distribution' THEN 'Replication Distributor'
          WHEN 'Merge' THEN 'Replication Merge'
          WHEN 'QueueReader' THEN 'Replication Queue Reader'
          WHEN 'Snapshot' THEN 'Replication Snapshot'
          WHEN 'LogReader' THEN 'Replication Transaction-Log Reader'
          WHEN 'ANALYSISCOMMAND' THEN 'SQL Server Analysis Services Command'
          WHEN 'ANALYSISQUERY' THEN 'SQL Server Analysis Services Query'
          WHEN 'SSIS' THEN 'SQL Server Integration Services Package'
          WHEN 'TSQL' THEN 'Transact-SQL script (T-SQL)'
          ELSE sJSTP.subsystem
        END AS [StepType] ,
        [sPROX].[name] AS [RunAs] ,
        [sJSTP].[database_name] AS [Database] ,
        [sJSTP].[command] AS [ExecutableCommand] ,
        CASE [sJSTP].[on_success_action]
          WHEN 1 THEN 'Quit the job reporting success'
          WHEN 2 THEN 'Quit the job reporting failure'
          WHEN 3 THEN 'Go to the next step'
          WHEN 4 THEN 'Go to Step: ' + QUOTENAME(CAST([sJSTP].[on_success_step_id] AS VARCHAR(3))) + ' ' + [sOSSTP].[step_name]
        END AS [OnSuccessAction] ,
        [sJSTP].[retry_attempts] AS [RetryAttempts] ,
        [sJSTP].[retry_interval] AS [RetryInterval (Minutes)] ,
        CASE [sJSTP].[on_fail_action]
          WHEN 1 THEN 'Quit the job reporting success'
          WHEN 2 THEN 'Quit the job reporting failure'
          WHEN 3 THEN 'Go to the next step'
          WHEN 4 THEN 'Go to Step: ' + QUOTENAME(CAST([sJSTP].[on_fail_step_id] AS VARCHAR(3))) + ' ' + [sOFSTP].[step_name]
        END AS [OnFailureAction],
        CASE
            WHEN [sSCH].[schedule_uid] IS NULL THEN 'No'
            ELSE 'Yes'
          END AS [IsScheduled],
        [sSCH].[name] AS [JobScheduleName],
        CASE [sJOB].[delete_level]
            WHEN 0 THEN 'Never'
            WHEN 1 THEN 'On Success'
            WHEN 2 THEN 'On Failure'
            WHEN 3 THEN 'On Completion'
          END AS [JobDeletionCriterion]
    FROM
        [msdb].[dbo].[sysjobsteps] AS [sJSTP]
        INNER JOIN [msdb].[dbo].[sysjobs] AS [sJOB] ON [sJSTP].[job_id] = [sJOB].[job_id]
        LEFT JOIN [msdb].[dbo].[sysjobsteps] AS [sOSSTP] ON [sJSTP].[job_id] = [sOSSTP].[job_id] AND [sJSTP].[on_success_step_id] = [sOSSTP].[step_id]
        LEFT JOIN [msdb].[dbo].[sysjobsteps] AS [sOFSTP] ON [sJSTP].[job_id] = [sOFSTP].[job_id] AND [sJSTP].[on_fail_step_id] = [sOFSTP].[step_id]
        LEFT JOIN [msdb].[dbo].[sysproxies] AS [sPROX] ON [sJSTP].[proxy_id] = [sPROX].[proxy_id]
        LEFT JOIN [msdb].[dbo].[syscategories] AS [sCAT] ON [sJOB].[category_id] = [sCAT].[category_id]
        LEFT JOIN [msdb].[sys].[database_principals] AS [sDBP] ON [sJOB].[owner_sid] = [sDBP].[sid]
        LEFT JOIN [msdb].[dbo].[sysjobschedules] AS [sJOBSCH] ON [sJOB].[job_id] = [sJOBSCH].[job_id]
        LEFT JOIN [msdb].[dbo].[sysschedules] AS [sSCH] ON [sJOBSCH].[schedule_id] = [sSCH].[schedule_id]
    WHERE
        [sJSTP].[command] LIKE '%' + @String + '%'
        OR [sJOB].[name] LIKE '%' + @String + '%'
    ORDER BY
        [JobName] ,
        [StepNo]
        
END

Utilização:

Transact-SQL
1
2
3
EXEC CLR.dbo.stpBusca_String_Job 'Importa' -- Imprime na tela uma lista com todos os jobs ou steps que contenham a palavra 'Importa' no nome ou código-fonte do step.
 
EXEC CLR.dbo.stpBusca_String_Job @String = 'Gera' -- Imprime na tela uma lista com todos os jobs ou steps que contenham a palavra 'Gera' no nome ou código-fonte do step.

É isso aí pessoal,
Bom proveito!

Tags: buscacomandoinformaçõesjobjobslistalistagemprocuraqueryscheduleserversqlstepstringtexto

You may also like...

  • SQL Server 2016 – Como consultar informações de um CEP utilizando a API Bemean e a função JSON_VALUE

  • SQL Server – Problema no Power BI Gateway ao utilizar IP ou hostname externo para acessar o banco

  • Como recuperar o maior valor entre múltiplas colunas em uma tabela do SQL Server

  • Next Habilitando OLE Automation via T-SQL no SQL Server
  • Previous SQL Server – Quebrando strings em sub-strings utilizando separador (Split string)

Deixe uma resposta Cancelar resposta

Dirceu Resende © 2020. All Rights Reserved.