sql >> Base de Datos >  >> RDS >> Sqlserver

si quiero encontrar lo que hace referencia a un objeto en SQL Server, ¿la búsqueda de syscomments es completa?

No especificó qué versión de SQL Server está utilizando. Asumo 2000, pero si está en 2005 o posterior, debe consultar sys.sql_modules vista de catálogo y/o OBJECT_DEFINITION() función. Como un ejemplo 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 + '%';

También es posible que desee consultar el siguiente hilo de StackOverflow sobre la nueva herramienta de búsqueda SQL gratuita de RedGate y algunos enfoques alternativos:

https://stackoverflow. com/questions/2187763/qué-otros-productos-son-similares-a-redgates-sql-search/

Si realmente está atascado en 2000, entonces este artículo que escribí hace casi 10 años aún puede ser relevante y útil (incluida la adaptación al problema de fragmentos de 4K que mencionó Matt):

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