【发布时间】:2021-04-21 17:28:17
【问题描述】:
我需要使用 PowerShell 运行一个返回 2 个结果集的存储过程。我使用 dbatools 来做到这一点,但我可以使用 .NET 来实现。我只是不知道怎么做。
对于这个例子,我使用exec sp_spaceused,它将返回实际数据库中使用的空间。这是 SSMS 中的结果:
正如您在此处看到的,有 2 个结果集。现在,当我在 PowerShell 中运行相同的命令时,我不知道如何获取下一个结果集。
这是我想出的代码:
$conn = Connect-DbaInstance -SqlInstance . -MultipleActiveResultSets
$query = 'exec sp_spaceused'
Invoke-DbaQuery -SqlInstance $conn -Query $query
我什至不确定我是否以正确的方式使用了MultipleActiveResultSets。我在任何地方都找不到任何好的例子。
【问题讨论】:
-
MultipleActiveResultSets不是正确的,它用于同时执行多个查询,而且通常是个坏主意。查看文档,也许-As 'DataSet'然后您可以从中获取单个表格?我假设这是一个标准的 ADO.NetDataSet
标签: sql sql-server powershell dbatools