【问题标题】:passing a parameter to an sql file in powershell (sqlcmd)将参数传递给powershell中的sql文件(sqlcmd)
【发布时间】:2012-04-12 16:26:11
【问题描述】:

假设我正在尝试从 powershell 运行以下 .sql 文件

SELECT * FROM table

目前这是我调用这个文件的方式

Invoke-Sqlcmd -ServerInstance instance -Database database -Username username -Password password -InputFile basicQuery.sql

如果我想从“myTable”中进行选择,我将如何将该参数传递给 sql 文件?

【问题讨论】:

    标签: sql variables powershell parameters sqlcmd


    【解决方案1】:

    如果查询与您的示例一样基本,最好将-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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      • 2019-02-09
      • 2022-01-05
      • 2019-10-22
      相关资源
      最近更新 更多