恢复前先将数据库转成独占模式,完成后再回复多用户模式
alter database userdata set SINGLE_USER;
restore database UserData from disk='f:\UserData.bak';
alter database userdata set MULTI_USER;
================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。0D
★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
★  支持在线检测程序升级情况,可及时获得程序更新的信息。
0A
★★ 签名  ●  
     可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]

解决方案 »

  1.   

    恢复时必须要以单用户模式启动,而且不能有用户访问该数据库。
    use master
      

  2.   

    谢谢,
    但是我是在Delphi中想实现sql server中的数据库UserData的恢复
    要提交query 需要有database
    我建立了两个database  :  database1,database2
    一个用于连接UserData,另一个用于连接master吧
    query的database赋为master
    但不能恢复
      

  3.   

    恢复时不要连接USERDATA。但是要保证其他人也没有访问USERDATA。另外纠正一下,我说错了,不是系统数据库不需要单用户模式启动。关于断开所有用户的方法在精华区有。找不到找斑竹。
      

  4.   

    database1.keepconnect:=false;
    database1.connect:=false;
    with query1 do
      begin
        close;
        sql.clear;
        sql.text:=format('restore database databasename from disk=""');
        execsql;
      end;