我有一个巨大的SQL查询,我希望通过PowerShell在另一台服务器的远程服务器上运行,但是我无法尝试每行每行获取结果,因为test.sql生成一个包含多个表和结果的表。我知道我可以使用
查询它$ConnectionToServer = New-Object System.Data.SQLClient.SQLConnection
$CommandCMSQry = New-Object System.Data.SQLClient.SQLCommand
其中$ CommandCMSQry包含字符串格式的整个查询。但是,我正在尝试减少脚本的行,因此我想将SQL查询放在PS脚本之外。
$QryPath = "D:\CNA\DatabaseIntegrityCheck.sql"
invoke-expression "SQLCMD -E -S $InstanceNm -d 'master' -i $QryPath -b" | Tee-Object -Variable ResultCreateSP | Select-Object name,database_id
$ResultCreateSP
示例结果: 主要结果
a b
1 foo1
2 foo2
如果我像这样访问列
write-host "a = " + $ResultCreateSP.name + "b = " + $ResultCreateSP.database_id
a = 1 b = foo1