Запустите SQL от Powershell, если существует файл в папке - PullRequest
0 голосов
/ 17 октября 2018

Добрый день

Мне кажется, как запустить команду sql, только если существует файл / ы в определенной папке?Я прочитал много сотрудников, но я не могу соответствовать своему сценарию.Я не хочу делать SSIS, я хочу сделать в Powershell.Затем я вставлю в MSQL Job Agent скрипт PowerShell, который будет запускаться каждый час.Если это задание найдет файл .csv / s, то начнется другое задание.

Спасибо за мнение.

$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 голосов
/ 17 октября 2018

указание папки и *.csv в переменной недостаточно;вам нужно получить список файлов.

для запуска команды sql в базе данных msdb Я добавил параметр -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'"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...