首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#和长SQL Server查询,正确的方法是什么?

C#和长SQL Server查询,正确的方法是什么?
EN

Stack Overflow用户
提问于 2012-01-31 03:02:43
回答 6查看 5.3K关注 0票数 2

我的问题本质上很简单--查询一个数据库,并将输出写入一组文件(~1000)。

我有一个SQL查询需要从SQL Server上的C#执行。除了in子句中的一个值之外,查询相当简单。

例如,查询可能如下所示:

代码语言:javascript
运行
复制
SELECT 
    ID, Name
FROM
    MyTable
WHERE
    SomeValue IN (/* list of values */)

值列表大约有300个字符串,每个字符串6个字符。这些值最终将类似于("A00001“、"A00002”等),并由应用程序的用户指定为输入。

我最初的想法是将查询构建为一个长字符串,将每个值聚合在一起。然而,这似乎不是正确的方法,而且似乎很容易出错。我的下一个想法是使用存储过程,但我不确定应该如何将数据传递给它。如何以一种高效的方式构建此查询,以便可靠地传递数据?

我的另一个选择是从SQL Server读取所有数据,然后在收到结果时在C#中对其进行筛选。然而,如果我这样做,我将获得大约900万条记录,这似乎太多了,无法作为一个数据集读取到内存中。因为我是在解析大约5000条记录之后写入文件的,所以我不希望在分析接收到的数据时保持数据读取器与数据库的连接。

最好的方法是什么?

EN

Stack Overflow用户

发布于 2012-01-31 03:10:15

如果您可以使用子查询(如egrunin所示)完成此操作,那么这将是最简单、最快的。如果你不能做到这一点(例如,你得到的只是一个值列表),那么你可能想要查看一个表值参数。

This question有一些读物可能会让你感兴趣。

票数 1
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9069250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档