![](/img/trans.png)
[英]Can PowerShell’s Invoke-Sqlcmd be used to run a script that does not return any datasets?
[英]Powershell Invoke-Sqlcmd - return multiple datasets
我正在尋找有關使用Invoke-SqlCmd
返回多個數據集或保持會話打開Invoke-SqlCmd
?
我有一系列SQL查詢,這些查詢使用臨時表來生成一些數據的相關視圖,這些數據將通過Excel發送給經理。 在研究數據集中的需求時,我有點厭倦了將樣本剪切並粘貼到Excel中的過程。
我以為可以使用Powershell將結果簡單地發送到HTML文件作為管理器的輸出,但是遇到了兩個問題
union
) Invoke-Sqlcmd
都是一個單獨的會話,這意味着我的臨時表將被刪除。 我正在尋找有關返回多個數據集或保持會話打開的建議?
Invoke-Sqlcmd -InputFile .\GenerateTimecard.sql -Variable $params | Out-Null;
@{
'Summary' = 'select * from #WeeklyTimeSummary;'
'ByDay' = 'select * from #WeeklyTimeDaily order by postdate desc;'
'ByTask' = 'select * from #WeeklyTimeEvents order by HoursSpent desc;'
'Detail' = 'select * from #WeeklyTimeDetail order by postdate desc;'
}.GetEnumerator() | ForEach-Object {
Write-Output $_.Name;
$fname = $_.Name + '.html';
Invoke-Sqlcmd -Query $_.Value | ConvertTo-Html | Out-File -Encoding ascii $fname;
};
Get-Help Invoke-Sqlcmd的Description部分說它支持GO命令,因此您可以嘗試立即運行所有內容。 我個人將使用-InputFile參數並將結果通過管道傳輸到Out-File。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.