我想知道数据库中哪些存储过程没有参数。我试过这些,但我不确定:
1)加入表sys.all_parameters
和sys.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')
2)从表information_schema.parameters
:
select *
from
information_schema.parameters
where
parameter_mode not in ('in', 'out', 'inout')
3)来自information_schema.parameters
:
select *
from
information_schema.parameters
where
parameter_name like ''
但是,我不完全确定这些是否正确。有什么直接的方法吗?
可能是这样的:
select * from sys.procedures where xtype = 'P' and has_parameters=0
答案 0 :(得分: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)