Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用所有数据还原数据库_Sql_Sql Server_Sql Server 2008_Database Restore - Fatal编程技术网

Sql 使用所有数据还原数据库

Sql 使用所有数据还原数据库,sql,sql-server,sql-server-2008,database-restore,Sql,Sql Server,Sql Server 2008,Database Restore,我创建了数据库(.bak文件)的完整备份。然后,我把它恢复到另一台机器上。我使用此查询还原: IF DB_ID('Northwind') IS NULL BEGIN RESTORE DATABASE [Northwind] FILE = N'Northwind_Data' FROM DISK = N'C:\Program Files\Microsoft SQLServer\MSSQL10_50.SS2008\MSSQL\Backup\Northwind.bak' WITH FILE =

我创建了数据库(.bak文件)的完整备份。然后,我把它恢复到另一台机器上。我使用此查询还原:

IF DB_ID('Northwind') IS NULL 
BEGIN
RESTORE DATABASE [Northwind]
FILE = N'Northwind_Data'
FROM DISK = N'C:\Program Files\Microsoft SQLServer\MSSQL10_50.SS2008\MSSQL\Backup\Northwind.bak'
WITH 
   FILE = 1, NOUNLOAD, STATS = 10,
   MOVE N'YOUR logical name of data file as shown by RESTORE FILELISTONLY command'
        TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SS2008\MSSQL\DATA\Northwind.mdf',
   MOVE N'YOUR logical name of Log file as shown by RESTORE FILELISTONLY command'
        TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SS2008\MSSQL\DATA\Northwind_0.LDF'
END
但是,当我使用select查询时,数据的显示仍然与还原之前相同。
如果希望所有数据相互匹配,如何解决此问题。

提供的脚本有一个if条件,用于检查DB_ID系统函数,以查看SQL Server上是否存在同名数据库。如果检查为true,则将跳过还原过程。SQL Server上不应存在同名数据库才能运行此脚本

或者,您可以修改脚本以包含用于恢复数据库的替换选项。请参阅MSDN链接:

您的脚本现在应该如下所示:

   IF DB_ID('Northwind') IS NULL 
BEGIN  //This runs if no database of the name "Northwind" exist
RESTORE DATABASE [Northwind]
FILE = N'Northwind_Data'
FROM DISK = N'C:\Program Files\Microsoft SQLServer\MSSQL10_50.SS2008\MSSQL\Backup\Northwind.bak'
WITH 
   FILE = 1, NOUNLOAD, STATS = 10, 
   MOVE N'YOUR logical name of data file as shown by RESTORE FILELISTONLY command'
        TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SS2008\MSSQL\DATA\Northwind.mdf',
   MOVE N'YOUR logical name of Log file as shown by RESTORE FILELISTONLY command'
        TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SS2008\MSSQL\DATA\Northwind_0.LDF'
END
ELSE
BEGIN //This runs if there is a database with same name by replaceing it.
RESTORE DATABASE [Northwind]
FILE = N'Northwind_Data'
FROM DISK = N'C:\Program Files\Microsoft SQLServer\MSSQL10_50.SS2008\MSSQL\Backup\Northwind.bak'
WITH 
   FILE = 1, NOUNLOAD, REPLACE, STATS = 10, 
   MOVE N'YOUR logical name of data file as shown by RESTORE FILELISTONLY command'
        TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SS2008\MSSQL\DATA\Northwind.mdf',
   MOVE N'YOUR logical name of Log file as shown by RESTORE FILELISTONLY command'
        TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SS2008\MSSQL\DATA\Northwind_0.LDF'
END
有很棒的第三方工具可以执行这些备份和恢复,甚至可以轻松修复损坏的数据库文件,以帮助您完成工作。退房

注意:Stack Overflow有一个独立于此的数据库管理员论坛,专门针对这样的数据库问题。将与数据库相关的问题张贴在那里,以获得更快、准确的答案


谢谢,嗯。

我想可能不会。因为我成功地还原了数据库,但表上的数据没有还原@Be1ng_kr1是否在现有数据库上还原?如果是这样,我猜还原失败了(可能是因为它正在使用)…您的脚本仅在数据库根本不存在的情况下执行还原。如果数据库与还原之前的数据库相同,则表示该数据库已经存在,并且不会执行还原。您为什么不在发布时将用户的答案标记为正确答案?如果您不知道如何投票,您可以使用答案旁边的向上/向下箭头为一篇好文章投票,并选择正确答案旁边的灰色勾号,将其标记为正确答案。它只是让一个问题更加完整,帮助其他人找到完整的问题和答案,并奖励海报一些帮助你的声誉点。