【问题标题】:How to count all stored procedures in the SQL Server for a database?如何计算数据库 SQL Server 中的所有存储过程?
【发布时间】:2011-01-07 18:37:36
【问题描述】:

如何计算我在数据库中编写的所有存储过程?

【问题讨论】:

标签: sql sql-server


【解决方案1】:
select Count(*) from sys.procedures

正如 Philip Kelley 所说,这是 sql 2005 及更高版本

【讨论】:

    【解决方案2】:
    -- Information about table -- 
    SELECT * FROM sys.sysobjects WHERE xtype = 'U'
    
    -- Information about Stored Procedure --
    SELECT * FROM sys.sysobjects WHERE xtype = 'P'
    
    -- Information about Functions --
    SELECT * FROM sys.sysobjects WHERE xtype = 'FN'
    
    -- Information about Views --
    SELECT * FROM sys.sysobjects WHERE xtype = 'V'
    

    【讨论】:

      【解决方案3】:

      获取存储过程计数:

      SELECT COUNT(*) SPCOUNT 
        FROM INFORMATION_SCHEMA.ROUTINES
       WHERE ROUTINE_TYPE='PROCEDURE'
      

      或:

      SELECT COUNT(*)
        FROM sys.procedures
      

      或:

      SELECT COUNT(*) 
        FROM sys.sysobjects
       WHERE xtype = 'P'
      

      希望这些帮助之一。

      【讨论】:

        【解决方案4】:

        正如 OP 在评论中指出的那样,all 早期的答案都是错误的,因为它们包含 system 程序。他特别要求提供“由我编写”的程序——后来在另一条评论中澄清了“系统程序以外,由我或任何使用该数据库的人编写。”

        所以要排除系统过程,我在 sys.procedures 中看到的唯一区别字段是名称。因此,您需要在任何其他答案中添加 WHERE 子句,如下所示:

        select count(*) from sys.procedures
        where name not like 'sp_%'
        

        【讨论】:

          【解决方案5】:
          SELECT COUNT(*)
          FROM INFORMATION_SCHEMA.ROUTINES
          WHERE ROUTINE_TYPE = 'PROCEDURE'
          

          【讨论】:

          • 这给出了一个包括系统和我的书面存储过程的计数,我只想知道我自己的书面存储过程的计数。
          • @NoviceToDotNet:这不是你问的问题。
          • @NoviceToDotNet 当您说“我写的”时,您是在谈论仅由您的用户编写的程序吗?还是任何用户?
          • 除系统程序外,由我或在该数据库上工作的任何人编写
          • 这是一个重复的问题
          【解决方案6】:
          select count(name)
          from sys.objects
          where type = 'P'
          

          【讨论】:

            【解决方案7】:
            select count(*)
            from sysobjects
            where xtype='P'
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2010-09-18
              • 1970-01-01
              • 1970-01-01
              • 2010-09-15
              • 1970-01-01
              • 1970-01-01
              • 2015-02-26
              相关资源
              最近更新 更多