sql - 如果文件夹中存在文件,则通过 Powershell 运行 SQL
问题描述
再会
我正在寻找仅当特定文件夹中存在文件时如何运行 sql 命令的方法?我读了很多员工,但我不能不适合我的剧本。我不想在 Powershell 中做我想做的 SSIS。然后我将把每小时运行一次的 MSQL Job Agent powershell 脚本放入。如果此 Job 找到 .csv 文件 /s 则将启动其他 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' ;"
}
解决方案
指定文件夹和*.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'"
}
推荐阅读
- tls1.2 - pure-ftp TLS:抱歉,此服务器不接受明文会话
- mysql - DateTime 值的 phpMyAdmin 外键未按预期工作
- isabelle - 限制 Isabelle 中关系的域
- deep-learning - 为什么 GoogLeNet 重新训练的模型大小比其他模型小?
- java - 从 .mod 文件中获取 LP,使用 GLPK 解决它并以可用的形式获取输出
- reactjs - 使用 React 时如何修复 400 bad request 错误?
- python - 试图连接 keras 中具有相同形状的两层,从而导致形状匹配错误
- c++ - 初始化向量,然后将所有值复制到地图中
- matlab - 为什么我的程序返回不准确的结果?
- java - 将 3rd 方应用程序战争部署为 Spring Boot 应用程序