【问题标题】:Powershell invoke-sqlcmd from query in a txt filePowershell 从 txt 文件中的查询调用 sqlcmd
【发布时间】:2015-03-10 19:45:09
【问题描述】:
我在一个文件夹的多个文本文件中有 TSQL 插入语句。我需要在 sql server 上使用 powershell 中的 foreach 循环运行。它应该转到文件夹中的每个文件读取查询执行该查询并终止连接再次读取下一个文件并执行相同的操作
invoke-sqlcmd -ServerInstance KUMSUSHI7 -Query (Get-Content | For-each "C:\Drill\Task\SAMS Automation\Query.txt")
请帮我解决这个问题
【问题讨论】:
标签:
sql
sql-server
tsql
powershell
【解决方案1】:
Invoke-Sqlcmd 可以将脚本文件作为参数,因此不需要-Query。 MSDN上有an example:
Invoke-Sqlcmd -InputFile "C:\TestSQLCmd.sql" | Out-File -filePath "C:\TestSQLCmd.rpt"
因此,获取您的 sql 文件列表并将文件名传递给Invoke-Sqlcmd,就像这样,
gci "c:\some\path\*" -include *.sql | % {
Invoke-Sqlcmd -InputFile $_.FullName
}