【发布时间】:2023-03-18 20:58:01
【问题描述】:
是否可以在不解析源的情况下选择插入、更新或删除记录的所有存储过程名称的列表?我需要创建一个 TSQL 实用程序脚本来执行此操作。效率不是问题,因为它每年只运行几次(Curse'rs 我的意思是 Cursors 还可以)。理想情况下,此脚本不包括对临时表或局部变量表的更新。
我尝试了在SO Question 上找到的以下查询。
SELECT
so.name,
so2.name,
sd.is_updated
from sysobjects so
inner join sys.sql_dependencies sd on so.id = sd.object_id
inner join sysobjects so2 on sd.referenced_major_id = so2.id
where so.xtype = 'p' -- procedure
and
is_updated = 1 -- proc updates table, or at least, I think that's what this means
但它会产生假阴性。
【问题讨论】:
-
您提供的链接包含此问题的答案...只需添加删除即可。
-
即使只更新 sprocs,我仍然有大约 5% 的失败率。
标签: sql-server tsql