我需要每天对各种服务器进行健康检查。我有一个SQL脚本,它在一个脚本中包含丢失的索引,重复的索引,CPU和内存,恢复,失败的作业,最后的备份等。
我正在服务器上手动运行此脚本并将结果更改为文本(我制作了使用print语句的脚本,因此我可以直接复制并粘贴结果)。
现在,我想使用PowerShell运行此脚本,但是我无法获得row-column
格式的文本格式的结果。
代码:
$RESULT = (Invoke-Sqlcmd -InputFile $sqlscript -ServerInstance $server -Database $databse -Verbose 4>&1) |
Out-File $outfile
我得到所有打印语句,但没有得到文本文件中的结果。
答案 0 :(得分:0)
更合适的方法如下。
[string]$SqlsSript = '..\path\'
[string]$ConnectionString = '...'
$DataSet = Invoke-SqlCmd -ConnectionString $Connectionstring -InputFile $SqlScript -As DataSet
然后您可以浏览$ DataSet集合,即
$DataSet.Tables[0].Rows
然后,您可以根据需要将其转换/输出为文件。
请确保您的SqlScript返回一个表,例如表变量。