如何计算我在数据库中编写的所有存储过程?
答案 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'