使用SP的模式名称在所有存储过程中使用的表的列表

时间:2013-08-16 05:27:25

标签: sql sql-server-2008 stored-procedures

我们如何使用存储过程的模式名称获取所有存储过程中使用的表的列表?我看到了答案here。但它没有列出存储过程的模式名称。有人知道如何检索存储过程的模式名称吗?

1 个答案:

答案 0 :(得分:3)

尝试此查询:

SELECT * 
FROM INFORMATION_SCHEMA.ROUTINES

这将返回当前数据库中的所有存储过程以及与之关联的模式。

如果你想获取表和相关的存储过程,请尝试以下方法:

SELECT t.TABLE_NAME, s.ROUTINE_NAME,s.SPECIFIC_SCHEMA
FROM INFORMATION_SCHEMA.TABLES t
INNER JOIN INFORMATION_SCHEMA.ROUTINES s 
ON s.ROUTINE_NAME IN 
(
        SELECT referencing_entity_name 
        FROM sys.dm_sql_referencing_entities(TABLE_SCHEMA + '.' + TABLE_NAME, 'OBJECT')
)
AND s.ROUTINE_TYPE = 'PROCEDURE'
WHERE t.TABLE_TYPE = 'BASE TABLE'

远离sysobject等视图