在SQL查询分析器中,如何设置命令将已备份的数据强制还原到指定的数据库?

时间:2023-02-07 00:41:57
在SQL查询分析器中,如何设置命令将已备份的数据强制还原到指定的数据库?

10 个解决方案

#1


试试这个:

restore database 数据库
from ...
with replace

#2


RESTORE DATABASE [test] FILE = N'tagl',  FILE = N'F' FROM  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\tagl.bak' WITH  FILE = 1,  MOVE N'tagl' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test.mdf',  MOVE N'F' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test_0.ndf',  MOVE N'tagl_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test_1.LDF',  NOUNLOAD,  REPLACE,  STATS = 10
GO

#3


如果你使用的是2005及以上版本,当你不知道代码怎么写的时候,可以在sql server managment studio中,把你的操作用图形化实现,但是不要点【确定】,图形界面上方有一个【脚本】的按钮,你一点就会帮你生成后台代码。另外,联机丛书是你找问题的第二个选择(第一个是搜索引擎)

#4


        我用的是SQL2000年版。
    数据库名为:SPJXCGL,完整数据库备份文件名为:SPJXCGL_BAK,位置在E盘建立的文件夹“SPSZBF”内。
    现在需要将E盘文件夹“SPSZBF”内的备份文件SPJXCGL_BAK,对数据库SPJXCG进行完整数据还原。
    我在查询分析器中使用如下命令进行数据库还原:
    RESTORE DATABASE SPJXCGL FROM  E:/SPSZBF/SPJXCGL_BAK
       但显示出错,不能执行。应如何根据备份文件的物理位置正确设置还原命令,敬向电脑专家请教,不胜感激!

#5


RESTORE DATABASE SPJXCGL FROM DISK=N'E:\SPSZBF\SPJXCGL_BAK.bak'

先试试这个,另外强烈建议备份文件需要有后缀名,比如.bak,否则还原会说找不到文件,你如果确定那个是完整备份文件,可以直接加后缀名

#6


回复引用一下。

#7


DBA_Huangzj老师:
    谢谢您的热心指导!
    我使用了您提供的命令:
        RESTORE DATABASE SPJXCGL FROM DISK=N'E:\SPSZBF\SPJXCGL_BAK.bak' 
       但运行后却出现了以下出错提示:

       服务器: 消息 3101,级别 16,状态 1,行 1
       因为数据库正在使用,所以未能获得对数据库的排它访问权。
   服务器: 消息 3013,级别 16,状态 1,行 1
      RESTORE DATABASE 操作异常终止。

    敬请您分析,是何原因,如何解决?不胜感激!

#8


先:
use master
go
drop database SPJXCGL 

然后再执行:
RESTORE DATABASE SPJXCGL FROM DISK=N'E:\SPSZBF\SPJXCGL_BAK.bak' 

前提是你这个库完全不要了。

#9


with replace的选项可以,也就是覆盖。

#10


--查看数据当前进程 
select 'kill '+CONVERT(varchar,spid)
from master..sysprocesses
where DB_NAME(dbid)='SPJXCGL' 
执行一下这个,然后把把kill的进程都杀掉,再恢复

#1


试试这个:

restore database 数据库
from ...
with replace

#2


RESTORE DATABASE [test] FILE = N'tagl',  FILE = N'F' FROM  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\tagl.bak' WITH  FILE = 1,  MOVE N'tagl' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test.mdf',  MOVE N'F' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test_0.ndf',  MOVE N'tagl_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test_1.LDF',  NOUNLOAD,  REPLACE,  STATS = 10
GO

#3


如果你使用的是2005及以上版本,当你不知道代码怎么写的时候,可以在sql server managment studio中,把你的操作用图形化实现,但是不要点【确定】,图形界面上方有一个【脚本】的按钮,你一点就会帮你生成后台代码。另外,联机丛书是你找问题的第二个选择(第一个是搜索引擎)

#4


        我用的是SQL2000年版。
    数据库名为:SPJXCGL,完整数据库备份文件名为:SPJXCGL_BAK,位置在E盘建立的文件夹“SPSZBF”内。
    现在需要将E盘文件夹“SPSZBF”内的备份文件SPJXCGL_BAK,对数据库SPJXCG进行完整数据还原。
    我在查询分析器中使用如下命令进行数据库还原:
    RESTORE DATABASE SPJXCGL FROM  E:/SPSZBF/SPJXCGL_BAK
       但显示出错,不能执行。应如何根据备份文件的物理位置正确设置还原命令,敬向电脑专家请教,不胜感激!

#5


RESTORE DATABASE SPJXCGL FROM DISK=N'E:\SPSZBF\SPJXCGL_BAK.bak'

先试试这个,另外强烈建议备份文件需要有后缀名,比如.bak,否则还原会说找不到文件,你如果确定那个是完整备份文件,可以直接加后缀名

#6


回复引用一下。

#7


DBA_Huangzj老师:
    谢谢您的热心指导!
    我使用了您提供的命令:
        RESTORE DATABASE SPJXCGL FROM DISK=N'E:\SPSZBF\SPJXCGL_BAK.bak' 
       但运行后却出现了以下出错提示:

       服务器: 消息 3101,级别 16,状态 1,行 1
       因为数据库正在使用,所以未能获得对数据库的排它访问权。
   服务器: 消息 3013,级别 16,状态 1,行 1
      RESTORE DATABASE 操作异常终止。

    敬请您分析,是何原因,如何解决?不胜感激!

#8


先:
use master
go
drop database SPJXCGL 

然后再执行:
RESTORE DATABASE SPJXCGL FROM DISK=N'E:\SPSZBF\SPJXCGL_BAK.bak' 

前提是你这个库完全不要了。

#9


with replace的选项可以,也就是覆盖。

#10


--查看数据当前进程 
select 'kill '+CONVERT(varchar,spid)
from master..sysprocesses
where DB_NAME(dbid)='SPJXCGL' 
执行一下这个,然后把把kill的进程都杀掉,再恢复