从SQL Server 2008中的所有数据库获取所有存储过程

Hug*_*ugo 4 stored-procedures sql-server-2008

任何人都可以建议在所有数据库中检索所有存储过程的列表及其架构名称的方法吗?感谢您的输入!

Aar*_*and 10

CREATE TABLE #x(db SYSNAME, s SYSNAME, p SYSNAME);

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += N'INSERT #x SELECT ''' + name + ''',s.name, p.name
  FROM ' + QUOTENAME(name) + '.sys.schemas AS s
  INNER JOIN ' + QUOTENAME(name) + '.sys.procedures AS p
  ON p.schema_id = s.schema_id;
' FROM sys.databases WHERE database_id > 4

EXEC sp_executesql @sql;

SELECT db,s,p FROM #x ORDER BY db,s,p;

DROP TABLE #x;
Run Code Online (Sandbox Code Playgroud)