Powershell invoke_sqlcmd没有关闭连接

时间:2017-09-12 19:54:52

标签: sql-server powershell invoke-sqlcmd

我正在使用Powershell脚本来动态恢复数据库(sql server 2012)。

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 MSG - ODBC返回代码< -1&gt ;,SQL状态< 37000&gt ;, SQL消息   < 3101>< [Microsoft] [SQL Server Native Client 10.0] [SQL Server]独占   因为数据库正在使用中,无法获取访问权限。>。

然后我使用SSMS使数据库脱机

alter database [db_target] set offline with rollback immediate 

在此之后我的脚本正常工作。

问题:

  1. 为什么invoke_sqlcmd没有关闭会话?
  2. 我可以从我的powershell脚本执行alter database ....命令吗?
  3. 谢谢

0 个答案:

没有答案