首页 > 解决方案 > 根据类型计算 SQL Server 用户创建的函数

问题描述

我可以使用 SQL Server 计算用户创建的函数总数

SELECT COUNT(*)
FROM information_schema.routines
WHERE routine_type = 'FUNCTION'

但这会返回所有函数,无论是标量值函数、内联函数还是表值函数

有没有办法获得特定于函数类型的计数?例如只计算内联函数?

标签: sqlsql-servertsqluser-defined-functionssql-function

解决方案


您所追求的这种区别是特定于 SQL Server 的,标准可能未涵盖information_schema。您需要为此查看系统视图:

select o.type_desc, count(*)
from sys.objects o
where o.type in ('AF', 'FN', 'FS', 'FT', 'IF', 'TF')
group by o.type_desc
order by o.type_desc;

根据您使用的 SQL Server 版本,可用对象类型的列表可能会有所不同。请参阅有关您的版本的文档


推荐阅读