簡體   English   中英

在SQL Server代理作業中作為步驟運行時的語法錯誤

[英]Syntax error when run in as step in SQL Server Agent Job

在PowerShell窗口中運行以下腳本時,它們的工作原理非常好。

Import-Csv $DestinationFile | ForEach-Object {
    Invoke-Sqlcmd -Database $database -ServerInstance $server -Query "INSERT INTO $table VALUES ('$($SourceFile)','$($_.LineNumber)','$($_.LineDescription)','$($_.Criteria)','$($_.LineValue)')"
}

但是,當您通過SQL Server代理作業運行此腳本時,則會產生語法錯誤。

另外,下面提到的行在安排為工作時不起作用。

$objWord = New-Object -Com Word.Application
$objWord.Visible = $false # $false

使用PowerShell,我們搜索文檔,並基於模式搜索找到結果……我們將它們導入數據庫。

當您在PowerShell控制台中運行時,一切正常,但是當您嘗試通過SQL Server運行PS1文件時,它什么也沒做。

請改用此方法,因為在SQL Agent中$( ... )是保留的。

Import-Csv $DestinationFile | ForEach-Object {
    Invoke-Sqlcmd -Database $database -ServerInstance $server -Query "INSERT INTO $table VALUES ('$SourceFile','" + $_.LineNumber + "','" + $_.LineDescription + "','" + $_.Criteria + "','" + $_.LineValue + "')"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM