我正在嘗試使用 Azure Devops 管道中的 PowerShell 腳本將 SQL 檔案部署到 Azure Synapse Analytics 專用 SQL 池。
我有一個包含 SQL 檔案的檔案夾,在定義檔案陣列后,我嘗試為陣列運行 foreach 回圈并嘗試Invoke-Sqlcmd部署檔案,但首先部署了 SQL 檔案(創建了物件),然后出現錯誤:
Msg 104309, Level 16, State 1, Line 1 輸入腳本中沒有批次。
下面是我的一段代碼:
$files='$(Build.SourcesDirectory)\folder1\'
foreach ($s in $files)
{
Invoke-sqlcmd -ServerInstance $(server) -Database $(db) -InputFile $s -Credential $(cred)}
uj5u.com熱心網友回復:
Azure Synapse Analytics 專用 SQL 池腳本對空批次很敏感,例如,此腳本會生成相同的錯誤:
Msg 104309, Level 16, State 1, Line 1 輸入腳本中沒有批次。
-- xx
GO
然而事實是你在 Synapse Studio 和 SQL Server Management Studio (SSMS) 中遇到了同樣的錯誤,所以我建議你運行你的腳本并使用 SSMS 中的Parse按鈕?? ( Ctrl F5),它會決議腳本但不執行它。這將幫助您追蹤錯誤:

總之,沒有不做任何事情的批次。
dir通過包含并使用該FullName方法獲取完整路徑,我能夠添加一個簡單的本地示例:
$files = dir "D:\temp\Powershell\*.sql"
foreach ($s in $files) {
#$s.Name
Invoke-Sqlcmd -ServerInstance '.\sql2019x' -Database 'tempdb' -InputFile $s.FullName
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/428274.html
上一篇:無法從存盤帳戶中洗掉診斷設定
