Estou usando esse pedaço (simplificado) de código para extrair um conjunto de tabelas do SQL Server com 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
}
Funciona muito bem, mas agora algumas tabelas precisam ser extraídas por meio de visualizações e outras não. Portanto, preciso de uma estrutura de dados semelhante a esta:
"Page" "vExtractPage"
, "ChecklistItemCategory" "ChecklistItemCategory"
, "ChecklistItem" "vExtractChecklistItem"
Eu estava olhando hashes, mas não estou encontrando nada sobre como fazer um loop em um hash. Qual seria a coisa certa a fazer aqui? Talvez use apenas um array, mas com ambos os valores, separados por espaço?
Ou estou perdendo algo óbvio?