在VC客户端里使用调用存储过程,存储调用backup备份了数据库,可是调用restore恢复时,不能将restore 写在所操作的数据库的存储过程里,还有要恢复的数据库不能处于使用状态,并且需要sysadmin用户才能操作,问题:
1、如何在客户端调用restore;
2、用connection对象的execute方法调用总出错;
3、如何保证要恢复的数据库不在使用状态;

解决方案 »

  1.   

    本人已经解决,过程比较繁杂,先将原来的数据库(mydb)连接断开,再用sa用户连接master,这样就可以restore了。
      

  2.   

    restore后再连接原来的数据库(mydb),这样可以继续对mydb进行操作。
      

  3.   

    随便连个数据库,执行还原的sql语句即可。搞个存储过程不是太复杂了吗
    RESTORE DATABASE { database_name | @database_name_var } 
    [ FROM < backup_device > [ ,...n ] ] 
    [ WITH
        [ RESTRICTED_USER ]
        [ [ , ] FILE = { file_number | @file_number } ]
        [ [ , ] PASSWORD = { password | @password_variable } ]
        [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
        [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
        [ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
                [ ,...n ]
        [ [ , ] KEEP_REPLICATION ]
        [ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]
        [ [ , ] { NOREWIND | REWIND } ]
        [ [ , ] { NOUNLOAD | UNLOAD } ]
        [ [ , ] REPLACE ]
        [ [ , ] RESTART ]
        [ [ , ] STATS [ = percentage ] ] 
    ]