sql - 在powershell中将参数传递给sql文件(sqlcmd)

标签 sql variables powershell parameters sqlcmd

假设我正在尝试从 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/

相关文章:

sql - 仅从 phpbb 的类别中的所有主题中获取最后一篇文章

mysql - 如何在MYSQL中找到总计借方 - 贷方和组的总和?

sql - 如何仅使用一个 sql 脚本 db2 将数据同时插入到两个表中?

variables - 使用 Xpath for..in..return 时在 XSLT/XPath 中创建增量计数变量?

powershell - 调用 ASCmd 以在 PowerShell 中返回错误/警告

powershell - Powershell-使用文件作为参数创建快捷方式

mysql - 在 MySQL 5.7 中使用 `Max()` 和 `GROUP BY`

java - 如何使用变量名调用java方法?

powershell - Start-Job - 实时检索输出

jquery - 引用 DOM jQuery DOM 对象时使用变量