我已经从这样发送的存储过程中拉出参数:
foreach (SqlParameter param in cmd.Parameters)
{
if ((param.Direction == ParameterDirection.Input) || (param.Direction == ParameterDirection.InputOutput))
{
jsonReturn += "{\"paramName\":\"" + param.ParameterName + "\", \"paramType\":\"" + param.SqlDbType.ToString() + "\"},";
}
}
Run Code Online (Sandbox Code Playgroud)
我查看了SqlParameter对象,无法找到一种方法来查看它是否可以告诉我参数是否具有默认值...(虽然我的调试器表现得很奇怪,所以谁知道).
我正在做的是为用户构建一种Stored Proc帮助器.我现在告诉他们所有属于他们选择的存储过程的参数......我真的想知道它们是否是必需的.
我知道我可以使用以下查询来查找所有存储过程及其参数:
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)
从这里我可以看到(几乎)所有关于参数的信息,但我不知道如何找到哪些是可空的或具有默认值.
有没有办法找到这个?
谢谢