假设我正在尝试从 powershell 运行以下 .sql 文件
SELECT * FROM table
目前,这就是我调用该文件的方式
Invoke-Sqlcmd -ServerInstance instance -Database database -Username username -Password password -InputFile basicQuery.sql
如果我想从“myTable”中进行选择,我该如何将该参数传递给 sql 文件?
最佳答案
如果查询像您的示例中一样基本,那么最好将 -InputFile
参数替换为 -Query
,这样您就可以轻松地使用变量。例如
$tables = "MyTable1","MyTable2"
$tables | Foreach-Object {
Invoke-Sqlcmd -ServerInstance instance -Database database -Username username -Password password -Query "SELECT * FROM $_"
}
对于更高级的查询,您可以执行文件搜索替换:
Get-Content sqlTemplate.sql | Foreach-Object {
$_ -replace "TABLE", "MyTable" | Out-File myQuery.sql -Append
}
Invoke-Sqlcmd -ServerInstance instance -Database database -Username username -Password password -InputFile myQuery.sql
关于sql - 在powershell中将参数传递给sql文件(sqlcmd),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10127707/