如何计算SQL Server中数据库的所有存储过程?

时间:2011-01-07 18:37:37

标签: sql sql-server

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

7 个答案:

答案 0 :(得分:39)

select Count(*) from sys.procedures

正如Philip Kelley所说,这是sql 2005及以上

答案 1 :(得分:10)

获取存储过程计数:

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

或:

SELECT COUNT(*)
  FROM sys.procedures

或:

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

希望其中一个有所帮助。

答案 2 :(得分:8)

-- 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 :(得分:2)

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

答案 4 :(得分:2)

select count(name)
from sys.objects
where type = 'P'

答案 5 :(得分:2)

正如OP在评论中指出的那样,所有都是错误的,因为它们包括系统程序。他专门询问了“由我编写”的过程-后来在另一条注释中阐明了“ 由我或在该数据库上工作的任何人编写的系统过程。”

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

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

答案 6 :(得分:1)

select count(*)
from sysobjects
where xtype='P'