SQL Server While Loop返回结果,因为它们被找到

时间:2012-12-03 20:59:32

标签: sql-server tsql ado.net

我有一个我编写的SQL脚本,它帮助我搜索数据库模式,以查找是否使用了某些列(即非空,不是零长度字符串等)以及它们最常用的值。

我真的希望能够返回结果,因为它们可能需要一段时间才能完成整个搜索。有没有办法以这样的方式返回结果:在VB.NET端,它会在尝试SqlDataReader.Read时看到结果?

因为现在,我将结果存储在临时表中并在结尾处返回临时表。

谢谢!

1 个答案:

答案 0 :(得分:1)

不是当它是单个SQL脚本时,不是 - 调用者将在继续之前等待完整的结果集。

但是,您可以将其分解为几个步骤,如下所示:

  • 进行初始查找,列出您可能感兴趣的所有列
  • 将这些结果返回给VB.NET
  • 对于此集合中的每个结果,运行您的剩余流程以获取您真正感兴趣的值。循环显示第一步中的每个结果
  • 当您收到每个数据集时,如果需要,您可以选择使用它。例如,剥离一个新线程,进行一些额外的处理。

因此,如果它是一个单独的T-SQL脚本,那么你一直在运行它并一次返回结果 - 但是如果你能够分解它并在.NET内而不是在SQL内部执行循环,那么你每个步骤都可以访问结果。