2012-04-12 74 views
0

讓說,我想從運行PowerShell的以下.sql文件將參數傳遞給一個SQL文件中的PowerShell(SQLCMD)

SELECT * FROM table 

目前,這是我特意打電話這個文件

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

如果我想從「myTable」中選擇如何將該參數傳遞給sql文件?

回答

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