【问题标题】:Retrieving a filtered list of stored procedures using t-sql使用 t-sql 检索过滤后的存储过程列表
【发布时间】:2010-03-26 10:13:00
【问题描述】:

我正在尝试获取 t-sql 中的存储过程列表。我正在使用这条线:

exec sys.sp_stored_procedures;

我想过滤结果,所以我只获取用户创建的存储过程。我想过滤掉 sp_*、dt_*、fn_*、xp_* 以及其他所有属于系统存储过程且我不感兴趣的内容。如何操作返回的结果集?

使用 Sql Server 2008 express。

解决了!这是我使用的:

SELECT name FROM sys.procedures
WHERE [type] = 'P'
AND name NOT LIKE 'sp_%'
AND name NOT LIKE 'dt_%'
ORDER BY name ASC;

【问题讨论】:

  • 本题题名与解题不符,能否将题名修改为“如何列出存储过程”?
  • 我同意,这个标题很糟糕。我已经更新了。
  • 您可以将第二和第三个 WHERE 子句替换为 is_ms_shipped = 0,以获得更可靠的用户定义过程列表。

标签: tsql stored-procedures


【解决方案1】:

您可以使用以下视图,而不是使用存储过程:

Select * From sys.procedures
Where [Type] = 'P'

Select * From Information_Schema.Routines

【讨论】:

  • 谢谢!我将把完整的解决方案放回我的问题中。
【解决方案2】:

sysobjects table 中选择项目,并为存储过程使用where 子句type = 'P' 并在name 上进行过滤。

【讨论】:

    【解决方案3】:
    SELECT [Routine_Name]
    FROM   [INFORMATION_SCHEMA].[ROUTINES]
    WHERE  [ROUTINE_TYPE] = 'PROCEDURE'
    

    【讨论】:

      猜你喜欢
      • 2018-10-03
      • 2013-05-28
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多