我有相同的sql server版本,尝试恢复db,得到错误:指定的强制转换是无效的。 (SqlManagerUI)

时间:2014-03-07 09:21:34

标签: sql-server-2008-r2 restore database-restore

我有一位客户向我发送他的数据库。我解压缩并尝试将其恢复到我的sql数据库。他正在使用SQL Server 2008 R2和我。我尝试以下步骤:

  1. 打开SQL Server Management Studio
  2. 登录
  3. 右键单击数据库文件夹
  4. 点击“恢复数据库...”
  5. 我给数据库一个新名称,因为我还没有它
  6. 我选择单选按钮“来自设备”
  7. 我浏览并选择.bak文件
  8. 我点击“确定”按钮开始恢复
  9. 现在我在下面收到此错误。我不明白这是什么问题!

      

    指定的演员表无效。 (SqlManagerUI)

         

    计划地点:

         

    at Microsoft.SqlServer.Management.SqlManagerUI.SqlRestoreDatabaseGeneral.PopulateGridWithBackupSetsFromDevices()
      在Microsoft.SqlServer.Management.SqlManagerUI.SqlRestoreDatabaseGeneral.GetBackupSetsFromDevices()
      在Microsoft.SqlServer.Management.SqlManagerUI.SqlRestoreDatabaseGeneral.textDeviceSelected_TextChanged(Object sender,EventArgs e)
      在System.Windows.Forms.Control.OnTextChanged(EventArgs e)
      在System.Windows.Forms.TextBoxBase.OnTextChanged(EventArgs e)
      在System.Windows.Forms.Control.set_Text(String value)
      在System.Windows.Forms.TextBoxBase.set_Text(String value)
      在System.Windows.Forms.TextBox.set_Text(String value)
      在Microsoft.SqlServer.Management.SqlManagerUI.SqlRestoreDatabaseGeneral.buttonSelectDevice_Click(Object sender,EventArgs e)
      在System.Windows.Forms.Control.OnClick(EventArgs e)
      在System.Windows.Forms.Button.OnClick(EventArgs e)
      在System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
      在System.Windows.Forms.Control.WmMouseUp(消息& m,MouseButtons按钮,Int32点击)
      在System.Windows.Forms.Control.WndProc(Message& m)
      在System.Windows.Forms.ButtonBase.WndProc(Message& m)
      在System.Windows.Forms.Button.WndProc(Message& m)
      在System.Windows.Forms.Control.ControlNativeWindow.OnMessage(消息& m)
      在System.Windows.Forms.Control.ControlNativeWindow.WndProc(消息& m)
      在System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd,Int32 msg,IntPtr wparam,IntPtr lparam)

2 个答案:

答案 0 :(得分:1)

真是奇怪的问题,我面对同样的问题;并以这种方式解决:

  1. 独立数据库
  2. 从适当的位置复制此数据库的.MDF / .LDF(数据和日志)文件。
  3. 重命名副本并将其粘贴(如果位于同一台计算机上则位于相同位置) 数据位置)
  4. 将其作为新数据库附加。

答案 1 :(得分:0)

如果.BAK文件已损坏,通常会发生这种情况,检查.BAK文件是否已损坏,您还可以尝试使用命令恢复

RESTORE DATABASE test FROM DISK = 'E:\test.bak'