2

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

EXEC etlp.LogPackageEnd ?,?,? 

需要 3 个参数。

作为一个 SQL 新手,我花时间阅读其他关于如何解决这个问题的帖子。我已经按照这里的建议尝试过使用 TSql100Parser.GetTokenStream,但它为每个问号返回了解析错误。我也尝试使用 Microsoft.SqlServer.Management.SqlParser.Parser.Parser.Parse() 但出现 Incorrect syntax near 的错误?

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

4

1 回答 1

0
SELECT name
FROM sys.parameters
WHERE object_id = OBJECT_ID('YourProcedureName')
于 2014-03-21T11:58:28.587 回答