列出所有没有参数的存储过程

Ani*_*esh 3 t-sql sql-server

我想找出数据库中哪些存储过程没有参数.我试过这些,但我不确定:

1)加入表格sys.all_parameterssys.all_objects:

select 
   ao.name,ao.type, ao.type_desc
from 
   sys.all_parameters pa
       left outer join 
   sys.all_objects ao
       on pa.object_id = ao.object_id
where 
    pa.name like ''
and 
    ao.type not in ('FN','AF','FS')
Run Code Online (Sandbox Code Playgroud)

2)从表格information_schema.parameters:

select * 
from
    information_schema.parameters 
where 
    parameter_mode not in ('in', 'out', 'inout')
Run Code Online (Sandbox Code Playgroud)

3)来自information_schema.parameters:

select * 
from
    information_schema.parameters 
where
    parameter_name like ''
Run Code Online (Sandbox Code Playgroud)

但是,我不完全确定这些是否正确.有什么直接的方法吗?

也许是这样的:

select * from sys.procedures where xtype = 'P' and has_parameters=0
Run Code Online (Sandbox Code Playgroud)

Mar*_*ith 10

SELECT SCHEMA_NAME(schema_id) AS schema_name,
       name
FROM   sys.procedures pr
WHERE  NOT EXISTS(SELECT *
                  FROM   sys.parameters p
                  WHERE  p.object_id = pr.object_id) 
Run Code Online (Sandbox Code Playgroud)