我有一个方法,它使用sp_sproc_columns来查找需要为存储过程发送的所有参数.
我的问题是如何为内联SQL查询执行类似的操作?
我想获得查询所期望的参数列表.
实现这一目标的唯一方法是使用正则表达式吗?任何例子?
例:
sql = "SELECT * FROM tbl WHERE id = @id AND name = @name"
我需要一个包含@id和@name的列表.
最佳答案 使用RegularExpression的方式也不是太难 – 如果这是您更喜欢找到参数的方式:
Regex r = new Regex(@"(?<Parameter>@\w*)", RegexOptions.Compiled);
foreach (Match m in r.Matches(sqlStatement))
{
if(m.Success)
{
string parameterName = m.Value;
}
}
但是,这只会给你参数名称 – 它不可能猜测或确定参数类型或任何其他参数元数据 – 所以最后,这可能是一个快速,但可能也是“脏”的方式去做吧.
渣