调用SQLCMD -i“test.sql”的表达式并将结果放入变量

时间:2016-11-11 03:54:49

标签: sql sql-server powershell sqlcmd

我有一个巨大的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

0 个答案:

没有答案