다음 코드는 서버의 각 데이터베이스에 대해 하나가 아닌 DataSet (마스터 데이터베이스의 경우)에서 하나의 행만 반환하는 이유를 설명 할 수 있습니까?데이터 세트의 sp_msforeachdb
$SQLConn = New-Object System.data.SqlClient.SqlConnection
$SQLConn.ConnectionString = "Data Source = $SQLServer; Initial Catalog = master;
Integrated Security = True"
$SQLConn.Open()
$query = "exec sp_msForEachDb 'use [?] SELECT TOP 1 [name] FROM sysusers'"
$SQLCmd = New-Object System.Data.Sqlclient.SqlCommand($query, $SQLConn);
$SQLAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SQLAdapter.SelectCommand = $SQLCmd
$DataSet = New-Object System.Data.Dataset
$SQLAdapter.Fill($DataSet) | out-null
ForEach ($row in $DataSet.Tables[0])
{
$Name = $row["name"]
write-host $Name
}
$SQLConn.Close()
오류 메시지가 반환됩니다. "형식 System.Data.DataTable의 개체에 인덱싱 할 수 없습니다." – user2089287