sqlserver 还原出现错误
本文来自:http://www.cnblogs.com/ggll611928/p/6377545.html
正常一般都是sqlserver图形化工具直接右键任务》》还原数据库》》源设备》》点击添加文件就报错了 百度说不能这样直接还原,需要用命令 打开cmd命令,输入sqlcmd ,然后用命令执行,其实这个步骤和直接用图形化窗口,选择系统数据库master ,在master中新建窗口执行是一样的效果 执行后报如下错误: Sql Server 逻辑文件 '' 不是数据库 '' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。 当使用语句还原数据库时,报如下错误: ?消息 3234,级别 16,状态 2,第 29 行 ? 原因:此数据库是用sql语句备份而来,引发的错误,原备份和还原的sql语句如下: --备份 BACKUP DATABASE LeaRunFramework_Base_2016 TO DISK = 'c:DB_BACKUPLenborMealOrder_Base_2017.bak' 还原 RESTORE DATABASE Members_01 FROM ' WITH MOVE LenborMealOrder_Base_2017' TO c:DB_BACKUPMembers_01.mdf',MOVE LenborMealOrder_Base_2017_logc:DB_BACKUPMembers_01.ldf' 解决方案:查找该数据的逻辑文件名,通过下面的语句即可查出,再修改还原语句中的名称即可。 获得数据库备份文件的信息 restore filelistonly from disk=' 输入命令后,会得到返回值,注意,这里是获取名称,Logicalname 而不是d:/msqlserver/data/test.mdf 如下图,这里找到是jfp 和jfp_log 而不是talkbasicnew.mdf 最后我执行成功的语句: RESTORE DATABASE talkbasicnew ?FROM DISK = 'C:talklj.bak' WITH ?replace, 变量1、talkbasicnew是自己的数据库名称 变量2、C:talklj.bak 是从其他服务器上备份回来的源文件 变量3、jfp即来自上面的命令?restore filelistonly from disk='C:talklj.bak', 得到的名称, jfp_log也是 变量4: D:installsqlserverMSSQL10_50.MSSQLSERVERMSSQLDATAtalkbasicnew.mdf 来自己本地创建的数据库的数据文件路径? 修改后的还原语句如下: DATABASE LenborMealOrder_Base_2017 c:DB_BACKUPLenborMealOrder_Base.bakLeaRunFramework_Base_2016c:DB_BACKUPLenborMealOrder_Base_2017.mdfLeaRunFramework_Base_2016_logc:DB_BACKUPLenborMealOrder_Base_2017.ldf执行上述语句即成功还原数据库,如下图: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |