有关如何使用从SQL数据库中的PowerShell显示表内容的问题

我正在写一个脚本的目的是从sql数据库中获取运行complie进程的一些信息。

如果我在sql server中作为查询运行下面的行

SELECT Stage.Description as StageDesc,Stage.StageStatusId FROM [Build].[dbo].[WorkflowInstance_View] as Build join [Build].[dbo].[Stage_View] as Stage on Build.Id=Stage.[WorkflowInstanceId]where Stage.ParentId is null and Stage.StageStatusId <>4 and Stage.StageStatusId <>7 order by Build.Id desc 

我可以得到这样的表结果,其中的内容XML信息。 :

在这里输入图像说明

现在,这是我的代码由powershell,我的目标是获得XML部分:

 $connection= new-object system.data.sqlclient.sqlconnection $Connection.ConnectionString ="server=SQLShare;database=Build;trusted_connection=True" $connection.open() $SqlCmd = New-Object System.Data.SqlClient.SqlCommand $SqlQuery = "SELECT Stage.Description as StageDesc,Stage.StageStatusId FROM [Build].[dbo].[WorkflowInstance_View] as Build join [Build].[dbo].[Stage_View] as Stage on Build.Id=Stage.[WorkflowInstanceId]where Stage.ParentId is null and Stage.StageStatusId <>4 and Stage.StageStatusId <>7 order by Build.Id desc" $SqlCmd.CommandText = $SqlQuery $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter $SqlAdapter.SelectCommand = $SqlCmd $SqlCmd.Connection = $Connection $DataSet = New-Object System.Data.DataSet $SqlAdapter.Fill($DataSet) $Connection.Close() 

但结果只出现了'2',这是当前正在运行的complie进程的数量。

因为我sooo忽略sql服务器。 任何机构都可能想要如何做到这一点? 我怎样才能通过使用PowerShell的XML部分?

我经常做这种事情。 不是XML部分,而是通过Powershell将数据从SQL中提取出来。

 $SqlQuery = "SELECT Thing, Item, FROM Tablename WHERE (Item < "5")" $SqlCmd.CommandTest=$SqlQuery $DBResult = $DBComand.ExecuteReader() $DataTable = New-Object system.data.datatable $DataTable.load($DBResult) 

您现在有一个Datatabletypes的对象来parsing。

 foreach ($Row in $DataTable) { [XML]$ReturnedXML=$Row.Thing() DoSomethingWithXML($ReturnedXML) }