terça-feira, 20 de setembro de 2016

SQL Server - Como localizar determinada palavra dentro de uma procedure ou tabela

Caso deseje localizar um determinado termo (palavra, comentário, nome de objeto, etc) dentro de uma procedure do SQL Server, execute o comando abaixo.

--Localizar dentro da procedure

use nome_do_banco
SELECT A.NAME, A.TYPE, B.TEXT
  FROM SYSOBJECTS  A (nolock)
  JOIN SYSCOMMENTS B (nolock) 
    ON A.ID = B.ID
WHERE UPPER(B.TEXT) LIKE '%MOTIVO%'  --- Informação a ser procurada no corpo da procedure
  AND A.TYPE = 'P'                     --- Tipo de objeto onde o a palavra será procurada. Neste caso, vai procudrar nas procedures
 ORDER BY A.NAME


Caso deseje saber a qual tabela pertence a uma determinada coluna, utilize a query abaixo.

--Localizar dentro de tabela


use nome_do_banco
 SELECT
    T.name AS Tabela,
    C.name AS Coluna
FROM
    sys.sysobjects    AS T (NOLOCK)
INNER JOIN sys.all_columns AS C (NOLOCK) ON T.id = C.object_id AND T.XTYPE = 'U'
WHERE
    upper(C.NAME) LIKE '%NOME_DA_COLUNA%'
ORDER BY
    T.name ASC

Nenhum comentário: