每当我尝试使用BACKUP和RESTORE命令创建数据库的副本时,副本都会创建,但不包含任何数据。我正在运行以下命令,并返回成功状态:SQL Server - 使用RESTORE复制数据库,生成的副本没有数据
BACKUP DATABASE [SomeDB]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\SomeDB.bak'
BACKUP DATABASE successfully processed 161 pages in 0.021 seconds (62.805 MB/sec).
RESTORE DATABASE [SomeDB_Copy]
FROM DISK=N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\SomeDB.bak'
WITH MOVE N'SomeDB' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\SomeDB_copy.mdf',
MOVE N'SomeDB_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\SomeDB_copy.ldf'
RESTORE DATABASE successfully processed 162 pages in 0.095 seconds (13.958 MB/sec).
我是否缺少一个步骤?我发现的所有例子都使用这种方法。 Even on StackOverflow。这是在SQL Server 2005上。
更新:我将数据库备份到一个新文件,并使用它恢复,一切正常。我不知道我的原始文件是否损坏,或其他奇怪的事情正在发生。
我讨厌问清楚,但你能否确认源数据库中有数据? – swasheck
在这一点上,我都是白痴检查。源数据库有1行1行,仅用于测试。 – kyork
我刚才测试了你的代码。创建一个名为'SomeDB'的数据库,有一个表和一行。运行代码进行备份和恢复。当我打开'SomeDB_Copy'时,它有一个如预期的一行。有没有可能你可以将'SomeDB.bak'上传到某个文件共享站点?你使用的是什么版本的SQL Server?什么版本的SSMS(或者你如何运行查询)?如果您使用用户界面进行备份还原而不是通过代码执行,它的工作原理是否相同? – mellamokb