Muszę znaleźć wszystkie widoki i procedury składowane, które zużywają nie tylko określoną tabelę, ale określoną kolumnę w tabeli.
Następujące „wydaje się” działać, ale istnieje wiele ostrzeżeń, aby zachować ostrożność przy tej metodzie (nie są wiarygodne z różnych powodów, wkrótce będą przestarzałe itp.):
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
Niektóre alternatywne podejścia, do których często się odwołuje, to sys.sql_dependencies i sys.sql_expression_dependencies, ale żadne z nich nie ma ziarnistości na poziomie kolumny.
Czy ktoś wie, jak to zrobić? (Lub nawet jeśli definitywnie wiesz, że dosłownie nie można tego zrobić, dobrze byłoby wiedzieć).