有没有办法扫描 SQL Server 以查找所有存储过程、读取它们的主体并确定它们使用的表列表?我的目的是对大型遗留数据库进行分析。 (SQL Server 2008R2,最好是 C#,但语言在很大程度上是无关紧要的。)
最佳答案
利用 SQL Server 的 sp_depends
系统存储过程。
select specific_name from information_schema.routines
where routine_type='PROCEDURE' and specific_name not like 'sp_%'
sp_depends
一起使用,并将其结果插入表中。 declare @t table([name] varchar(50),[type] varchar(50),
updated varchar(10),selected varchar(10),[column] varchar(50))
insert into @t exec sp_depends 'MyProc1';
insert into @t exec sp_depends 'MyProc2';
insert into @t exec sp_depends 'MyProc3';
select [name] from @t group by [name];
More on sp_depends
关于sql - 解析存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8419842/