在SQL Server代理作业中作为步骤运行时的语法错误

时间:2018-07-20 12:42:17

标签: sql-server powershell sql-server-2016

在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文件时,它什么也没做。

1 个答案:

答案 0 :(得分:0)

请改用此方法,因为在SQL Agent d = { 1: 'icis_0.8_water', 2: 'nevia', 3: 'Xiaomi', 4: 'hyundai_mouse', 5: 'peace_stapler' } print(d[int(classes[0][0])]) print(d[int(classes[0][1])]) print(d[int(classes[0][2])]) 中已保留。

$( ... )