相关疑难解决方法(0)

有没有办法确定存储过程中的参数是否在代码中具有默认值(因此不是必需的) - .Net?

我已经从这样发送的存储过程中拉出参数:

 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帮助器.我现在告诉他们所有属于他们选择的存储过程的参数......我真的想知道它们是否是必需的.

c# sql-server stored-procedures sqlparameter

5
推荐指数
2
解决办法
1268
查看次数

查找存储过程的哪些参数可以为空(可选)

我知道我可以使用以下查询来查找所有存储过程及其参数:

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)

从这里我可以看到(几乎)所有关于参数的信息,但我不知道如何找到哪些是可空的或具有默认值.

有没有办法找到这个?

谢谢

sql t-sql sql-server stored-procedures

5
推荐指数
1
解决办法
2614
查看次数

标签 统计

sql-server ×2

stored-procedures ×2

c# ×1

sql ×1

sqlparameter ×1

t-sql ×1