Devo trovare tutte le viste e le procedure memorizzate che consumano non solo una determinata tabella, ma una colonna specifica in una tabella.
Il seguente "sembra" funzionare, ma ci sono numerosi avvertimenti per stare attenti a questo metodo (non affidabile per una varietà di motivi, che presto sarà deprecato, ecc.):
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
Alcuni approcci alternativi a cui viene spesso fatto riferimento sono sys.sql_dependencies e sys.sql_expression_dependencies, ma nessuno di questi presenta una granularità a livello di colonna.
Qualcuno conosce un modo per farlo? (O anche se sai definitivamente che non si può fare letteralmente, sarebbe utile saperlo.)