Tôi đang sử dụng đoạn mã (đơn giản) này để trích xuất một tập hợp các bảng từ SQL Server với bcp.Lặp qua một băm hoặc sử dụng một mảng trong PowerShell?
$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
}
Nó hoạt động tốt, nhưng bây giờ một số bảng cần được trích xuất qua chế độ xem và một số thì không. Vì vậy, tôi cần cấu trúc dữ liệu giống như sau:
"Page" "vExtractPage"
, "ChecklistItemCategory" "ChecklistItemCategory"
, "ChecklistItem" "vExtractChecklistItem"
Tôi đã xem xét băm, nhưng tôi không tìm thấy bất kỳ thứ gì về cách lặp qua băm. Điều gì sẽ là điều đúng để làm ở đây? Có lẽ chỉ cần sử dụng một mảng, nhưng với cả hai giá trị, cách nhau bằng dấu cách?
Hoặc tôi có thiếu điều gì đó hiển nhiên không?
Làm cách nào tôi có thể liệt kê băm theo thứ tự khác? Ví dụ. khi tôi muốn in nội dung của nó theo thứ tự tăng dần (ở đây là ... b ... c). Thậm chí có thể không? – LPrc
Tại sao '$ hash.Item ($ _)' thay vì '$ hash [$ _]'? – alvarez
@LPrc sử dụng phương pháp Sort-Object để thực hiện điều đó. Bài viết này làm một lời giải thích khá tốt về nó: https://technet.microsoft.com/en-us/library/ee692803.aspx – chazbot7