c# - 我如何推断参数并从 SQL 查询字符串返回列?

标签 c# sql sql-server parsing sqlparameter

我正在构建一个允许用户输入 SQL 查询字符串的应用程序。这些查询字符串将包含 0 个或多个参数和 1 个或多个返回的列。是否有一种标准方法来解析 SQL 查询以提取这些元素?理想情况下,这将不运行查询,甚至不连接到 SQL Server 实例。

查询字符串可能如下所示:

SELECT
    Posts.ID,
    Posts.Description
FROM Posts
WHERE Posts.Date > @StartDate

然后,我想从中提取列名称的集合(“Posts.ID”、“Posts.Description”)和参数的集合(“StartDate”)。

这似乎并不是一件特别奇怪的事情。事实上,Microsoft 在他们的报告产品中这样做(我在 BIDS 中看到过)。

有没有我可以使用的图书馆?否则,推荐的方法是什么?

最佳答案

我不知道有什么方法可以在不连接到 SQL Server 的情况下获取此信息,但是对于 SQL Server 2012 及更高版本,有一些新的系统存储过程可能会有所帮助;

在 SQL Server 2012 之前,您可以使用 SET FMTONLY ON 执行查询获取结果集架构,但您需要知道参数。

希望对您有所帮助,

瑞斯

关于c# - 我如何推断参数并从 SQL 查询字符串返回列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27940878/

相关文章:

c# - 如何在 C# 中以编程方式获取网络适配器的硬件 ID

c# - 将服务引用添加到 WinForm 项目时出错

c# - EF 一对一主要关系错误

sql - Access SQL中如何实现 "INSERT INTO"

mysql - 如何在 MySQL 中返回数据透视表输出?

c# - 无法绑定(bind)依赖属性

sql - 我应该使用数字还是字母数字 ID

c# - 超时/结束日期事件的解决方案

sql - 自动调用存储过程

sql-server - 微软 SQL : Use a stored procedures result set in another query?