MBu*_*nan 3 sql-server powershell
$sql=("select top 1 * FROM CollectionProfile")
$CollectionProfile = New-Object System.Data.DataTable
$CollectionProfile = Invoke-Sqlcmd -ServerInstance $Instance -Database $db -Query $sql -ErrorAction Stop
$CollectionProfile.Rows.Count
Run Code Online (Sandbox Code Playgroud)
回报:0
但是,如果我将 TOP 计数更改为 2 -
$sql=("select top 2 * FROM CollectionProfile")
Run Code Online (Sandbox Code Playgroud)
回报:2
让我发疯,是的,我在“内网”上找不到对此的任何引用。我一定是做错了什么,但是什么?
当您使用 TOP 1 查询时,Invoke-SqlCmd 返回一个 DataRow。当您使用 TOP 2 查询时,Invoke-SqlCmd 返回一个 DataRow 数组。Invoke-SqlCmd 不返回 DataTable。您可以更改代码以强制返回数组(请参见此处:force array),然后检查其上的计数:
$sql = ("select top 1 * FROM CollectionProfile")
$CollectionProfile = @(Invoke-Sqlcmd -ServerInstance $Instance -Database $db -Query $sql -ErrorAction Stop)
$CollectionProfile.Count #Returns 0 with Null, 1 with TOP 1, and 2 with TOP 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7601 次 |
| 最近记录: |