我正在使用Powershell來腳本來動態恢復數據庫(sql server 2012)。Powershell invoke_sqlcmd未關閉連接
set-location "SQLSERVER:\sql\$host_name\$inst\databases\.$db_target"
$db = Invoke-Sqlcmd -Query "select type_desc,name,physical_name from sys.master_files where database_id=db_id(N'$db_target') order by type_desc desc "
當我執行該腳本,我得到了以下錯誤消息:
DBMS味精 - ODBC返回代碼< -1>,SQL國家< 37000>,SQL消息 < 3101> < [ Microsoft] [SQL Server Native Client 10.0] [SQL Server]獨有的 訪問因爲數據庫正在使用而無法獲得。>。
然後我用SSMS對數據庫進行脫機使
alter database [db_target] set offline with rollback immediate
我的腳本工作正常之後。
問:
- 爲什麼invoke_sqlcmd不關閉會話?
- 我可以從我的powershell腳本執行alter database ....命令嗎?
感謝
在你的代碼中,你是否關閉了像'$ dbconnection.Close()'這樣的連接...發佈代碼,以便我們可以提供更好的幫助。 – ShanayL
也許連接池。在Invoke-SqlCommand之後嘗試'[System.Data.SqlClient.SqlConnection] :: ClearAllPools()'。 –
我嘗試了很多選擇,但連接仍然打開。這裏是我的代碼 - – Judi