如果文件夹中存在文件,则通过Powershell运行SQL

时间:2018-10-17 07:20:49

标签: sql sql-server powershell

美好的一天

我只想在特定文件夹中存在文件的情况下如何运行sql命令的方法?我读了很多工作人员,但是我不适合我的工作人员。我不想在Powershell中做我想做的SSIS。 然后,我将把每个小时运行一次的MSQL Job Agent powershell脚本放入MSQL Job Agent中。如果此Job找到.csv文件,则它将启动其他Job。

感谢您的意见。

$SourceFile = "C:\Import\FOLDER\report\Old\test\*.csv"
Action = "Invoke-Sqlcmd -ServerInstance "100.000.000.001" -Query "USE msdb ;   EXEC dbo.sp_start_job N'MSSQLJOBNAME' ;"

if(Test-Path -Path $SourceFile)
{
    "Invoke-Sqlcmd -ServerInstance "100.000.000.001" -Query "USE msdb ;   EXEC dbo.sp_start_job N'MSSQLJOBNAME' ;"

}

1 个答案:

答案 0 :(得分:0)

仅指定文件夹和变量中的*.csv是不够的;您必须获取文件列表。

为了在数据库msdb中运行sql命令,我添加了参数-Database

$SourceFilesArray = Get-ChildItem -Path "C:\Import\FOLDER\report\Old\test\" -Filter "*.csv"

if($SourceFilesArray) {
    # $SourceFilesArray is not empty/contains list of specified files
    Invoke-Sqlcmd -ServerInstance "100.000.000.001" -Database "msdb" -Query "EXEC dbo.sp_start_job 'MSSQLJOBNAME'"
} else {
    # run this if $SourceFilesArray is empty/no files found
    Invoke-Sqlcmd -ServerInstance "100.000.000.001" -Database "msdb" -Query "EXEC dbo.sp_start_job 'MSSQLJOBNAME'"
}