我们今天能为您提供什么帮助?

How to Terminate All Sessions Prior to Restoring a Database

Issue
Cannot restore a database.  The Restore Database operation fails, reporting that exclusive access could not be obtained because the database is in use.

Product

Power Monitoring Expert 7.2.x

Power Monitoring Expert 8.x

Power Monitoring Expert 9.0

Power Monitoring Expert 2020

Power Monitoring Expert 2021

Power Monitoring Expert 2022

Power Monitoring Expert 2023

Power Monitoring Expert 2024



Environment
SQL Server

Cause
Before an existing database can be restored, there should be no connections using the database. If the database is currently in use the RESTORE command fails with below error:

Msg 3101, Level 16, State 1, Line 2
Exclusive access could not be obtained because the database is in use.
Msg 3013, Level 16, State 1, Line 2
RESTORE DATABASE is terminating abnormally.

Resolution
To avoid this, we need to terminate all sessions that use the database. All sessions using the database can be obtained
by executing the system stored procedure sp_who2 or by querying the sys.dm_exec_sessions table as:
SELECT   session_id
FROM     sys.dm_exec_sessions
WHERE    DB_NAME(database_id) = 'RestoringDatabaseName'

You need to terminate each of the sessions returned individually by using KILL command.

If there are a large number of sessions to terminate, or you need to do this on a routinely,this can be a lengthy and tedious process.
You can *automate* this using below script, which takes the database name as input, and terminates all sessions connecting to it.

USE [master]
GO
 
DECLARE @dbName SYSNAME
DECLARE @sqlCmd VARCHAR(MAX)
 
SET @sqlCmd = ''
SET @dbName = 'RestoringDatabaseName' -- Change database name here
 
SELECT   @sqlCmd = @sqlCmd + 'KILL ' + CAST(session_id AS VARCHAR) +
         CHAR(13)
FROM     sys.dm_exec_sessions
WHERE    DB_NAME(database_id) = @dbName
 
PRINT @sqlCmd
 
--Uncomment below line to kill
--EXEC (@sqlCmd)
As in example the script and results will look like this
Script

** see attachment containing the SQL script text

施耐德電機Taiwan

附件
TerminateSessions.txt [382 Bytes]
探索更多
產品:
探索更多
產品:

需要協助?

需要協助?

產品選型工具

產品選型工具

快速輕鬆地為您的應用找到合適的產品和附件。

取得報價

取得報價

立即線上提交您的銷售需求,專業團隊將主動聯繫您。

購買地點

購買地點

輕鬆在您所在地區找到最近的施耐德電機經銷商。

支援中心

支援中心

在同一位置找到滿足您所有需求的支援資源。

  • 產品文檔
  • 軟體下載
  • 產品選型工具
  • 產品替代和替換
  • 幫助和聯絡中心
  • 尋找我們的辦公室
  • 取得報價
  • 施耐德電機社群
  • 人才招募
  • 公司簡介
  • 舉報不當行為
  • 無障礙
  • 新聞中心
  • 投資者
  • 專業洞察
  • 台灣施耐德電機學院
  • 綠色影響力落差調查
  • Schneider Go Green 2025
  • 隱私政策
  • Cookie通告
  • 使用條款
  • Change your cookie settings