Есть ли способ узнать, какие хранимые процедуры создают запись в таблице.Скажем, например:
Сохраненная процедура A вставляет в таблицу A
Сохраненная процедура B Вставляет в таблицу A
Сохраненная процедура C Вставляет в таблицу B
Я хочу запрос для возврата имени хранимой процедуры A и хранимой процедуры B.
Я получил это прямо сейчас, но все, что он делает, это находит хранимые процедуры. Я думаю, что это будет хорошей отправной точкой для поиска хранимых процедур.
select schema_name(schema_id) as [schema],
name
from sys.procedures
where name like '%Item%' and name like '%Create%'
Я использую Microsoft SQL 2008
Лучшие 10 хранимых процедур списка выполнились, которые действительно вставляют/обновляют на таблице к прошлому времени выполнения, которое Вы можете Вы использовать ниже сценария
GRANT VIEW SERVER STATE TO databaseuser
Select top 10 dest.objectid, DB_Name(dest.[dbid]) As 'databaseName'
, Object_Name(dest.objectid, dest.[dbid]) As 'procName'
, Max(deqs.last_execution_time) As 'last_execution'
From sys.dm_exec_query_stats As deqs
Cross Apply sys.dm_exec_sql_text(deqs.sql_handle) As dest
Join sys.sql_dependencies as sqldep on sqldep.object_id = dest.objectid
Where dest.[text] Like '%CashProduct%' -- replace
And dest.[dbid] Is Not Null -- exclude ad-hocs
And DB_Name(dest.[dbid]) = 'DatabaNameDu'
And sqldep.is_updated = 1
Group By db_name(dest.[dbid])
, Object_Name(dest.objectid, dest.[dbid]),
dest.objectid
Order By
Max(deqs.last_execution_time) desc
Option (MaxDop 1);