还原数据库
--
--还原数据库笔记
--
--查看有哪些进程连接到数据库DataBaseName,语句如下:
select * from master.sys.sysprocesses where dbid=db_id('DataBaseName')--DataBaseName为数据库名称
--杀死进程,79为进程的spid
kill 60
--当数据库还原出错时(显示正在还原中的),原因是由于还原的时候没有选择覆盖全部模式导致,解决如下:
restore database DataBaseName with recovery
--强制回滚所有没提交事务,并将数据库设为单用户模式,语句如下:
use [master]
go
alter database DataBaseName set single_user with rollback immediate
go
alter database DataBaseName set single_user
go
--强制回滚所有没提交事务,并将数据库设为多用户模式,语句如下:
use [master]
go
alter database DataBaseName set single_user with rollback immediate
go
alter database DataBaseName set multi_user
go
--不回滚事务,从单户模式转成多用户模式,语句如下:
use master;
go
declare @sql varchar(max);
set @sql=''
select @sql=@sql+'; KILL '+rtrim(spid)
from master.sys.sysprocesses
where dbid=db_id('DataBaseName');
exec(@sql);
go
alter database DataBaseName set multi_user;