use*_*567 24 sql sql-server sql-server-2012
我有一个数据库A.我已经备份了一个名为A.bak的数据库A. 我创建了一个新的数据库B.现在,我右键单击并从A.bak恢复B. 在"还原对话框"中,我检查了覆盖现有数据库并将LogicalFileName更改为C:\Program Files\Microsoft SQL Server\MSSQL11.SQLSERVER2012\MSSQL\DATA\A.mdf,C:\Program Files\Microsoft SQL Server\MSSQL11.SQLSERVER2012\MSSQL\DATA\B.mdf并对ldf文件执行了相同操作.但我得到了
Exclusive access could not be obtained because the database is in use.
也尝试过,
ALTER DATABASE [B] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
Run Code Online (Sandbox Code Playgroud)
也是sp_who2,没有[B]的现有连接
Pro*_*gle 70
尝试获取独占访问权的原因来自SQL Server 2012 Management Studio中的还原对话框的选项页面.它将打开尾部日志并保留恢复SOURCE数据库的状态选项.因此,它将尝试获得对源数据库的独占访问权(在本例中为A)以执行此操作.如果关闭尾部日志选项,您会发现操作更顺畅.
答案很简单,
运行此命令以获取LogicalNames,
RESTORE FILELISTONLY FROM DISK = 'C:\Users\MyUSer\Desktop\A.bak'
Run Code Online (Sandbox Code Playgroud)
然后只需将LogicalName放在下面,
RESTORE DATABASE B
FROM DISK = 'C:\Users\MyUSer\Desktop\A.bak'
WITH
MOVE 'LogicalName' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLSERVER2012\MSSQL\Data\B.mdf',
MOVE 'LogicalName_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLSERVER2012\MSSQL\Data\B.ldf'
GO
Run Code Online (Sandbox Code Playgroud)
请注意,您可能需要更改路径.有用的网址,
http://technet.microsoft.com/en-us/library/ms186390.aspx
| 归档时间: |
|
| 查看次数: |
37954 次 |
| 最近记录: |