Con*_*rix 43
select Count(*) from sys.procedures
Run Code Online (Sandbox Code Playgroud)
正如Philip Kelley所说,这是sql 2005及以上版本
Nei*_*ght 10
要获取存储过程计数:
SELECT COUNT(*) SPCOUNT
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE='PROCEDURE'
Run Code Online (Sandbox Code Playgroud)
要么:
SELECT COUNT(*)
FROM sys.procedures
Run Code Online (Sandbox Code Playgroud)
要么:
SELECT COUNT(*)
FROM sys.sysobjects
WHERE xtype = 'P'
Run Code Online (Sandbox Code Playgroud)
希望其中一个有所帮助.
小智 9
-- 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'
Run Code Online (Sandbox Code Playgroud)
小智 7
正如OP在评论中指出的那样,所有早期的答案都是错误的,因为它们包括系统程序。他特别要求提供“由我编写”的程序,后来在另一条评论中澄清“除了系统程序,由我或任何在该数据库上工作的人编写”。
因此,为了排除系统过程,我在 sys.procedures 中看到的唯一区分字段是名称。因此,您需要向任何其他答案添加 WHERE 子句,如下所示:
select count(*) from sys.procedures
where name not like 'sp_%'
Run Code Online (Sandbox Code Playgroud)