如何确定任意SQL语句中的预期参数数量?

时间:2012-07-10 21:15:46

标签: .net sql smo

我想创建一些.NET代码(最好是C#)来确定任意SQL语句中预期参数的数量。例如,这句话

EXEC etlp.LogPackageEnd ?,?,? 

需要3个参数。

作为一名SQL新手,我花时间阅读其他帖子,了解如何解决这个问题。我已经尝试使用TSql100Parser.GetTokenStream,如建议here,但它返回了每个问号的解析错误。我也尝试使用Microsoft.SqlServer.Management.SqlParser.Parser.Parser.Parse()但是接近错误的语法错误?

我意识到我可以使用正则表达式,但我正在寻找一个通用的解决方案;我的理解是参数格式可以改变,所以问号不是指标。

1 个答案:

答案 0 :(得分:0)

SELECT name
FROM sys.parameters
WHERE object_id = OBJECT_ID('YourProcedureName')