我备份了一个数据库:
BACKUP DATABASE MyDatabase
TO DISK = 'MyDatabase.bak'
WITH INIT --overwrite existing
Run Code Online (Sandbox Code Playgroud)
然后尝试恢复它:
RESTORE DATABASE MyDatabase
FROM DISK = 'MyDatabase.bak'
WITH REPLACE --force restore over specified database
Run Code Online (Sandbox Code Playgroud)
现在数据库仍处于恢复状态.
有些人认为这是因为备份中没有日志文件,需要使用以下方式前滚:
RESTORE DATABASE MyDatabase
WITH RECOVERY
Run Code Online (Sandbox Code Playgroud)
当然,除此之外,失败:
Msg 4333, Level 16, State 1, Line 1
The database cannot be recovered because the log was not restored.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
Run Code Online (Sandbox Code Playgroud)
确切地说,在灾难性的情况下你想要的是一种无法恢复的恢复.
备份包含数据和日志文件:
RESTORE FILELISTONLY
FROM DISK = 'MyDatabase.bak'
Logical Name PhysicalName
============= =============== …Run Code Online (Sandbox Code Playgroud) 我有一个MS SQL Server 2008 Express系统,它包含一个我想要"复制和重命名"的数据库(用于测试目的),但我不知道实现这一目的的简单方法.
我注意到在SQL Server的R2版本中有一个复制数据库向导,但遗憾的是我无法升级.
有问题的数据库是围绕着一个演出.我试图恢复我要复制到新数据库的数据库的备份,但没有运气.
我想编写一个SQL脚本,它将在同一台服务器上复制数据库.我可以进行备份/恢复,但我认为以某种方式"复制"可能会更快.有谁知道这是否可能?有没有办法编写一个只需要分离的脚本,将文件复制到HD上,然后重新附加两个副本?
我有:
SQL Server 2008
数据库名称:database1
我差不多一个月前从"database1"那里备份了.现在,通过某种方式,"database1"在一些表格中搞砸了.
所以我想从上次备份中只恢复那些表.
我正在尝试创建另一个名为"database2"的数据库,并使用旧备份对其进行恢复.
我害怕从备份文件恢复,这可能在"database1"中恢复,我想只在'database2'中重新存储(这是新的)