0
我有以下行來設置我的sql cmd。如何通過PowerShell將多個變量傳遞到SQL腳本中?
$mySqlCmd = "sqlcmd -S $server -U $username -P $pwd -d $dbname -o $lis -i $sqlScript -v fileDate = $fileDate, filePath = $filePath, sqlLoadErrors = $sqlLoadErrorPath"
Invoke-Expression $mySqlCmd
這似乎不適用於多個變量。如果我刪除了我想要傳遞給SQL腳本的最後2個變量,SQL腳本就會運行並工作。
在我的SQL腳本,我有以下幾點:
DECLARE
@currentDate NVARCHAR(25),
@filePath NVARCHAR(25),
@sqlLoadErrors NVARCHAR(25)
SET @currentDate = $(fileDate)
SET @filePath = $(filePath)
SET @sqlLoadErrors = $(sqlLoadErrors)
有什麼不對的PowerShell腳本正在做的變量傳遞到SQL腳本?
我敢打賭,逗號混淆解析器。我會嘗試使用PowerShell的停止解析符號''%'。像這樣:'$ mySqlCmd =「sqlcmd - %-S $ server -U $ username -P $ pwd -d $ dbname -o $ lis -i $ sqlScript -v fileDate = $ fileDate,filePath = $ filePath,sqlLoadErrors = $ sqlLoadErrorPath「'。 –
另外,'$ pwd'是當前工作目錄的保留變量名稱。它來自「print working directory」的'pwd' POSIX shell命令。我會避免使用它。 –
似乎不起作用。感謝pwd提示,儘管我現在改變了。 – user3266638