当前位置: 首页 > 面试题库 >

SQL-Server:错误-由于正在使用数据库,因此无法获得独占访问

薛扬
2023-03-14
问题内容

我实际上正在尝试制作一个脚本(在Sql Server 2008中)以从一个备份文件还原一个数据库。我做了以下代码,但出现错误-

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

我该如何解决这个问题?

IF DB_ID('AdventureWorksDW') IS NOT NULL 
BEGIN 
RESTORE DATABASE [AdventureWorksDW] 
FILE = N'AdventureWorksDW_Data' 
FROM  
DISK = N'C:\Program Files\Microsoft SQL Server\
MSSQL10_50.SS2008\MSSQL\Backup\AdventureWorksDW.bak' 
WITH  FILE = 1, 
MOVE N'AdventureWorksDW_Data' 
TO N'C:\Program Files\Microsoft SQL Server\
MSSQL10_50.SS2008\MSSQL\DATA\AdventureWorksDW.mdf', 
MOVE N'AdventureWorksDW_Log'  
TO N'C:\Program Files\Microsoft SQL Server\
MSSQL10_50.SS2008\MSSQL\DATA\AdventureWorksDW_0.LDF', 
NOUNLOAD,  STATS = 10 
END

问题答案:

我假设如果您要还原数据库,则无需关心该数据库上的任何现有事务。正确的?如果是这样,这应该为您工作:

USE master
GO

ALTER DATABASE AdventureWorksDW
SET SINGLE_USER
--This rolls back all uncommitted transactions in the db.
WITH ROLLBACK IMMEDIATE
GO

RESTORE DATABASE AdventureWorksDW
FROM ...
...
GO

现在,需要注意的另一项内容。将数据库设置为单用户模式后,其他人可能会尝试连接到该数据库。如果它们成功,您将无法继续进行还原。这是一场比赛!我的建议是一次运行所有三个语句。



 类似资料:
  • 实际上,我正在尝试制作一个脚本(在Sql Server 2008中)来从一个备份文件恢复一个数据库。我做了下面的代码,我得到了一个错误- 我如何解决这个问题?

  • 问题内容: 我似乎遇到了错误:将我的SQL Server数据库连接到用netbeans编写的Java应用程序时。 我已经阅读了许多文章,并做了以下工作: 在UDP和TCP下允许1433端口连接到防火墙 将SQL Server配置管理器TCP / IP端口设置为1433 将SQL Server Management Studio中的服务器身份验证更改为混合身份验证 SQL Server Manage

  • 在下面的代码中,我有两个文件。一个用于数据库连接,另一个用于基于html的jsp文件。我正在尝试检查数据库的版本并将其打印到屏幕上。我正在尝试返回CheckVersion的值,并使用out.println将其放到网页上。 jasperException:PWC6033:JSP的Javac编译错误 PWC6199:生成的servlet错误:包com.sun.xml.rpc.processor.mod

  • 安装Visual Studio2012并打开解决方案后,在此表单中出现一系列错误: Web应用程序项目Foo配置为使用IIS。 无法访问IIS元数据库。您没有足够的权限访问计算机上的IIS网站。 我为我们的每个web应用程序都得到了这一点。 我尝试过的事情: 以管理员身份运行Visual Studio 正在运行aspnet_regiis.exe-ga MyUserName 正在运行aspnet_r

  • 本文向大家介绍C#访问SQL Server数据库的实现方法,包括了C#访问SQL Server数据库的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#访问SQL Server数据库的实现方法。分享给大家供大家参考。具体如下: 这里介绍一下用C#访问SQL Server数据库。这里要涉及到几个类:SqlConnection类、SqlCommand类、SqlDataReader类。

  • 我安装了Sonarqube6.5的最新版本,并且已经能够启动并运行SonarQube服务器。我使用名为“SonarUser”的用户创建了名为“Sonar”的SQL Server数据库,并赋予了它管理权限。我已将排序规则更改为区分大小写(CS)和区分重音(AS)。我已经下载了jdbc驱动程序并将其放在正确的文件夹中。按照这里提到的步骤-https://docs.sonarqube.org/displ