2013-02-05 38 views
3

我想知道數據庫中哪些存儲過程沒有參數。我嘗試了這些,但我不知道:列出所有沒有參數的存儲過程

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') 

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 

回答

9
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) 
+4

+1 ** ** DARN通過15秒打我.... :-)你鍵入**太快** –

相關問題