【发布时间】:2015-05-04 23:02:18
【问题描述】:
我在让 PowerShell 运行多个 SQL 查询并将结果导出为 CSV 时遇到问题。
我正在尝试使用 Function 来完成此操作,但是当我希望两个查询运行并输出两个 CSV 文件时,问题出现在 Process 块中。
我尝试创建一个函数来运行查询和第二个函数来创建 CSV 文件,但它甚至没有运行 SQL 查询。我在执行此 powershell 脚本的位置没有安装 SQL 的情况下执行此操作。 -谢谢!
Function Run-Query {
param([string[]]$queries,[string[]]$sheetnames)
Begin{
$SQLServer = 'ServerName'
$Database = 'DataBase'
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $Database; Integrated Security = True"
}#End Begin
Process{
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $queries
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$DataSet.Tables[0] | Export-Csv -NoTypeInformation -Path "C:\Scripts\$sheetnames.csv"
}#End Process
End{
$SqlConnection.Close()
}
}#End function run-query.
$queries = @()
$queries += @'
Select * from something
'@
$queries += @'
Select * from something2
'@
$sheetnames = @()
$sheetnames += 'Cert'
$sheetnames += 'Prod'
Run-Query -queries $queries
【问题讨论】:
标签: sql sql-server tsql powershell csv