Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

se eu quiser encontrar o que está referenciando um objeto no SQL Server, a pesquisa de syscomments é abrangente?


Você não especificou qual versão do SQL Server está usando. Estou assumindo 2000, mas se você estiver em 2005 ou posterior, deve consultar o sys.sql_modules visualização de catálogo e/ou OBJECT_DEFINITION() função. Como um exemplo rápido:
SELECT SCHEMA_NAME(schema_id) +'.'+ name
FROM sys.objects
WHERE OBJECT_DEFINITION(object_id) LIKE '%' + @Search + '%';

-- or

SELECT OBJECT_SCHEMA_NAME(object_id) +'.'+ OBJECT_NAME(object_id)
FROM sys.sql_modules
WHERE [definition] LIKE '%' + @Search + '%';

Além disso, você pode conferir o seguinte tópico do StackOverflow sobre a nova e gratuita ferramenta SQL Search do RedGate e algumas abordagens alternativas:

https://stackoverflow. com/questions/2187763/what-other-products-are-similar-to-redgates-sql-search/

Se você realmente está preso em 2000, então este artigo que escrevi há quase 10 anos ainda pode ser relevante e útil (incluindo acomodar o problema do bloco de 4K que Matt mencionou):

http://bancos de dados .aspfaq.com/database/how-do-i-find-a-stored-procedure-containing-text.html