使用2.0如何使用SQL Server SMO和散列中的PowerShell設置數據庫選項?
我創建了一個hash選項,我想在一個SQL Server數據庫設置像這樣的SQL Server 2008 R2和PowerShell:
$dbopts = @{
"AutoCreateStatistics"=$true;
"AutoUpdateStatistics"=$true;
"AutoShrink"=$false;
};
我想設置一個SQL這些選項服務器數據庫使用SMO。我創建了一個接受SMO數據庫對象和DatabaseOptions散列作爲輸入的函數。
function setDatabaseOptions {
param ($db, $opts);
foreach ($opt in $db.DatabaseOptions) {
# what to write here?
}
}
我想將散列中的選項設置爲數據庫。不確定最好的方式來做到這一點。有什麼建議麼?例如,要明確設置的選項,你會做
$db.DatabaseOptions.AutoCreateStatistics = $true
我不希望在函數中硬編碼的選項,但從散列中讀取。即。 '$ opt。[$ myHashItem] = $ opts。['$ myHashItemValue']'我希望這足以讓人明白! –
我沒跟着你,「$ opt。[$ myHashItem] = $ opts。['$ myHashItemValue']」沒有硬編碼? –
'$ opt.AutoCreateStatistics'是一個硬編碼的數據庫選項。我想遍歷$ opts散列並將每個選項設置爲每個值,但不是明確聲明它。 IOW我需要一個foreach循環來遍歷每一個循環。 $ opts哈希每次調用時都會有所不同,因此我不能讓它們硬編碼。我希望這更清楚。 –