J'utilise ce morceau de code (simplifié) pour extraire un ensemble de tables du serveur SQL avec 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
}
Cela fonctionne très bien, mais maintenant certaines tables doivent être extraites via des vues, et d'autres non. J'ai donc besoin d'une structure de données semblable à celle-ci :
"Page" "vExtractPage"
, "ChecklistItemCategory" "ChecklistItemCategory"
, "ChecklistItem" "vExtractChecklistItem"
Je me suis penché sur les hachages, mais je n'ai rien trouvé sur la façon de boucler un hachage. Quelle serait la bonne chose à faire ici ? Peut-être utiliser un tableau, mais avec les deux valeurs, séparées par un espace ?
Ou ai-je oublié quelque chose d'évident ?