美好的一天
我只想在特定文件夹中存在文件的情况下如何运行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' ;"
}
答案 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'"
}