我有幾個表需要定期清理(去重複)。我想創建一個函數,我可以調用並傳入一個表名作爲參數。我堅持使用back tics(`),引號(「)和括號來引用內聯腳本變量($),我試圖將其作爲函數參數傳入。帶腳本變量和函數參數的Invoke-sqlcmd
我倒了「得到的幫助調用-SQLCMD -detailed」,並試圖與-Variable選擇不同的組合,但沒有成功
有人可以幫我正確的語法
我剝了下來腳本看起來像這樣? -
# Define Server
$server = "AHDC389"
# Define Database
$dbname = "VBP"
# Define Table
$dbtab = "[FacilityBaseline]"
# Import SQL svr handler
Import-Module 「sqlps」 -DisableNameChecking
# Set env for SQL svr handler
Set-Location SQLSERVER:\SQL\$server\DEFAULT\Databases\$dbname
# Define my SQL query
$query = "SELECT DISTINCT * INTO #Temp FROM `$dbtab; TRUNCATE TABLE `$dbtab;
INSERT INTO `$dbtab SELECT DISTINCT * FROM #Temp;"
# Put Query in a Function for reuse
Function DeDup ([string] $dbtab) {
Invoke-Sqlcmd -Query $query
}
# Call my Function and pass the Table name I want to dedup.
DeDup $dbtab
我得到的錯誤重新「$ dbtab'」或''dbtab'腳本變量未定義附近的語法錯誤'
比你。我現在知道了。 – Colin 2013-05-01 16:35:57