我已经通过 Google 和 Stack Overflow 进行了大量搜索,如果有答案,我无法提出一个搜索查询来提供我正在寻找的答案。
我正在构建一个函数模块以在我的 ASP.net 网站中使用,以处理连接到 Microsoft SQL Server DB 和执行查询的所有繁琐工作。我目前正在研究执行查询的函数,并决定允许一个可选的函数参数,它是一个 SQL 参数数组。
在传递给它们的可选 SQL 参数的函数中,我想检查传递的 SQL 查询是否有命名参数。如果 SQL 查询中有命名参数,请确保确实传递了可选的 SQL 参数。如果 SQL 查询中没有命名参数,请确保没有传递任何 SQL 参数。例如:
- SQL 查询 =
SELECT * FROM MyTable WHERE ID = @TheID
→ 函数调用必须有 SQL 参数。 - SQL 查询 =
SELECT GETDATE()
→ 函数调用不能有 SQL 参数。
我对所有人的问题是“搜索”作为命名参数的 SQL 查询的字符串的最佳方法是什么(不知道参数的名称)。我对只在字符串中搜索“@”字符持谨慎态度,因为我在某处读到可能有一个以该字符命名的列(例如[name@domain]
)。也许我可以使用正则表达式来搜索“=”,然后是任意数量的空格,然后是“@”?