我正在嘗試搜索數據庫中是否存在particualr機器名稱,如果有,我們將用新機器名稱替換。爲什麼在執行Invoke-sqlcmd時工作目錄正在改變?
我們使用PowerShell
Add-pssnapin sqlserverprovidersnapin100 -ErrorAction SilentlyContinue
Add-pssnapin sqlservercmdletsnapin100 -ErrorAction SilentlyContinue
$SelectQuery = "SELECT [$columnName] FROM [$DatabaseName].[dbo].[$TableName] Where [$columnName] is not null;"
try {
$Qresult= Invoke-sqlcmd -query $SelectQuery -Database $DatabaseName -ServerInstance $srvInstance -Verbose
$Qresult = $Qresult| % { $_.$columnName+"`n"
#check whether the Machine Name is found if the column value is processed in URL format
$IsOldFoundFromURL=TestOldMachineFromURL $Qresult $OldMachineName
#check whether the Machine Name is found if the column value is processed in Connection string format
$IsOldFoundFromConn=TestOldMachineFromconnstring $Qresult $OldMachineName
If ($IsOldFoundFromURL -or $IsOldFoundFromConn) {
LogWrite "Columns Name before changing: $columnName "
LogWrite "$Qresult"
}
Else {
LogWrite "OldMachine name is not found in DB"
Return
}
}
catch {
Write-error "Error occured when executing sql $SelectQuery"
LogWrite $Error[0]
}
每一件事工作正常。但是,執行Invoke-sqlcmd時,驅動器號將更改爲SQLServer:\,這很令人驚訝。
我在Windows中運行這個2012 R2機器並針對SQL Server執行這個2012年
當工作目錄被改變,因爲我們是在書面方式當前腳本路徑中的日誌文件,我們的腳本失敗,當問題是腳本路徑更改爲SQLserver:\,無法創建日誌文件並失敗。
該代碼看起來不完整。你在什麼時候寫日誌? – arco444 2014-12-03 13:54:59
@ arco444更新了代碼片段 – Samselvaprabu 2014-12-03 14:00:46
因此,它在嘗試寫入日誌時失敗,但您並未在實際發生的地方包含'LogWrite'函數。當然這是腳本中最相關的部分? – arco444 2014-12-03 14:22:37