Sto usando questo pezzo di codice (semplificato) per estrarre un set di tabelle da SQL Server con BCP .
$OutputDirectory = "c:\junk\"
$ServerOption = "-SServerName"
$TargetDatabase = "Content.dbo."
$ExtractTables = @(
"Page"
, "ChecklistItemCategory"
, "ChecklistItem"
)
for ($i=0; $i -le $ExtractTables.Length – 1; $i++) {
$InputFullTableName = "$TargetDatabase$($ExtractTables[$i])"
$OutputFullFileName = "$OutputDirectory$($ExtractTables[$i])"
bcp $InputFullTableName out $OutputFullFileName -T -c $ServerOption
}
Funziona benissimo, ma ora alcune tabelle devono essere estratte tramite le visualizzazioni e altre no. Quindi ho bisogno di una struttura dati simile a questa:
"Page" "vExtractPage"
, "ChecklistItemCategory" "ChecklistItemCategory"
, "ChecklistItem" "vExtractChecklistItem"
Stavo guardando gli hash, ma non ho trovato nulla su come eseguire il loop attraverso un hash. Quale sarebbe la cosa giusta da fare qui? Forse usi solo un array, ma con entrambi i valori, separati da uno spazio?
O mi sto perdendo qualcosa di ovvio?