Necesito encontrar todas las vistas y procedimientos almacenados que consuman no solo una tabla determinada, sino una columna específica en una tabla.
Lo siguiente "parece" funcionar, pero hay numerosas advertencias para tener cuidado con este método (no confiable por una variedad de razones, que pronto será obsoleto, etc.):
SELECT object_name(so.id) TableName, sc.name ColumnName, OBJECT_NAME(sd.id) DependentObjectName,
(SELECT xtype FROM sysobjects so WHERE so.id = sd.id) Object_Type
FROM sysobjects so INNER JOIN syscolumns sc
ON so.id = sc.id
INNER JOIN sysdepends sd
ON so.id = sd.depid and sc.colid = sd.depnumber
WHERE
object_name(so.id) = 'MyTableName'
AND sc.name = 'MyColumnName'
order by object_name(so.id), Object_Type
Algunos enfoques alternativos a los que a menudo se hace referencia son sys.sql_dependencies y sys.sql_expression_dependencies, pero ninguno de estos tiene granularidad a nivel de columna.
¿Alguien sabe una manera de hacer esto? (O incluso si sabe definitivamente que literalmente no se puede hacer, sería útil saberlo).
1
El ejemplo 2 de este consejo es para la búsqueda a nivel de columna.