bza*_*fir 5 sql t-sql sql-server stored-procedures
我知道我可以使用以下查询来查找所有存储过程及其参数:
SELECT
r.*, p.*
FROM
INFORMATION_SCHEMA.ROUTINES AS r INNER JOIN
INFORMATION_SCHEMA.PARAMETERS AS p
ON r.SPECIFIC_SCHEMA = p.SPECIFIC_SCHEMA AND r.SPECIFIC_NAME = p.SPECIFIC_NAME
WHERE (r.ROUTINE_TYPE = N'PROCEDURE')
Run Code Online (Sandbox Code Playgroud)
从这里我可以看到(几乎)所有关于参数的信息,但我不知道如何找到哪些是可空的或具有默认值.
有没有办法找到这个?
谢谢
所有参数都可以为空.没有语法可以指定NULL不应传递的语法.
要找出具有默认值的那些,您可以检查sys.parametersCLR存储过程
SELECT has_default_value,name
FROM sys.parameters
where object_id=object_id('YourProc')
Run Code Online (Sandbox Code Playgroud)
遗憾的是,此列目前尚未正确填充 TSQL存储过程,并且唯一的方法是解析对象定义.