用這個不行嗎﹖--备份
backup database 数据库 to disk='c:\你的备份文件名'
--还原
restore database 数据库 from disk='c:\你的备份文件名'

解决方案 »

  1.   

    看看有哪些进程正在使用这个库,停掉再还原就行了。执行sp_who,可以看到进程信息
    用kill spid,杀掉使用这个库的进程
      

  2.   

    --还原的时候,不能设置当前数据库为要还原的数据库osql -Unv -Pnvpwd -Stestpc2\nvpro -dmaster -Q "restore database nvpro from disk='C:\temp\backupnv.dmp' with replace"
      

  3.   

    --都去掉-d这个参数
    1.
    osql -Unv -Pnvpwd -Stestpc2\nvpro  -Q "backup database nvpro to disk='C:\temp\backupnv.dmp'"
    2.
    osql -Unv -Pnvpwd -Stestpc2\nvpro  -Q "restore database nvpro from disk='C:\temp\backupnv.dmp'"
      

  4.   

    或者都指定-dmaster 也可以!
      

  5.   

    --如果我上面的还不行,那就证明还有其他用户在连接,可以用这个来强制还原osql -Unv -Pnvpwd -Stestpc2\nvpro -dmaster -Q "declare tb cursor local for select 'kill '+cast(spid as varchar) from sysprocesses where dbid=db_id('nvpro') open tb declare @s nvarchar(1000) fetch tb into @s while @@fetch_status=0 begin exec(@s) fetch tb into @s end close tb deallocate tb restore database nvpro from disk='C:\temp\backupnv.dmp' with replace"
      

  6.   

    先执行use master再alter database
      

  7.   

    谢谢你, zjcxc(邹建)这样就可以了:osql -Unv -Pnvpwd -Stestpc2\nvpro -dmaster -Q "restore database nvpro from disk='C:\temp\backupnv.dmp' with replace"