有没有办法在.net核心中派生存储过程的参数?

时间:2017-06-01 08:07:43

标签: .net-core sqlclient .net-standard-2.0

SqlCommandBuilder.DeriveParameters在.net核心中不可用(即使在.NETCoreApp 2.0中),那么有没有办法在.net核心中检索存储过程的参数列表?

1 个答案:

答案 0 :(得分:0)

您可以随时检查SQL Server目录视图以获取此信息 - 例如,使用此查询:

SELECT  
    pr.name,     -- Procedure name
    pa.name,     -- Parameter name
    pa.parameter_id,
    ty.name,     -- Parameter datatype name 
    pa.max_length,    -- Max length (of string parameters)
    pa.precision,     -- Precision (total num of digits) for numeric parameters
    pa.scale,         -- Scale (num of digits after decimal point) for numeric parameters
    pa.is_output,            
    pa.has_default_value,    
    pa.is_readonly,
    pa.is_nullable
FROM 
    sys.procedures pr
INNER JOIN 
    sys.parameters pa ON pa.object_id = pr.object_id
INNER JOIN 
    sys.types ty ON ty.user_type_id = pa.user_type_id

这可以扩展 - 如果您对这些信息感兴趣,可以提供更多信息。

有关SQL Server中不可缺少的目录视图的更多信息和详细信息,请参阅SQL Server catalog views