SQLで複数のクエリを実行してCSVとしてエクスポートするPowershell関数があります。これらのクエリのそれぞれは、日付変数に依存しています。現在の設定を使用して、Powershellのこの日付変数を(ストアドプロシージャではなく)これらのSQLスクリプトに渡す方法はありますか?どんな助けでも大歓迎です!データが使用されている場所あなたのクエリでマーカーを追加することができPowershellから変数をSQLスクリプトに渡す
Function Run-Query
{
param([string[]]$queries,[string[]]$sheetnames)
Begin
{
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $Database; User ID = $uid; Password = $pwd;"
Write-host "Connection to database successful."
}#End Begin
Process
{
# Loop through each query
For($i = 0; $i -lt $queries.count; $i++)
{
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
# Use the current index ($i) to get the query
$SqlCmd.CommandText = $queries[$i]
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
# Use the current index ($i) to get the sheetname for the CSV
$DataSet.Tables[0] #| Export-Csv -NoTypeInformation -Path "C:\Users\mbaron\Downloads\$($sheetnames[$i]).csv"
}
}#End Process
End
{
$SqlConnection.Close()
}
}#End function run-query.
を?この関数はクエリを生成または編集しません。 – Matt
ADO.NETでパラメータ化されたクエリを読み込みます。 – alroc
@Mattコンピュータのファイルからクエリを取得します。 $ SqlQuery1 = get-content "C:¥Documents¥SQL Server Management Studio¥test¥test.sql"アウトストリング; $ queries = @() $ queries + = @ " $ SqlQuery1 " @ – mtb2434