多用戶模式下還原數(shù)據(jù)庫
還原或刪除sql server 2008數(shù)據(jù)庫時,經(jīng)常燴出現(xiàn):
“因為數(shù)據(jù)庫正在使用纬乍,所以無法獲得對數(shù)據(jù)庫的獨占訪問權(quán)”佳恬,終解決方案如下
關(guān)鍵SQL語句:
ALTER DATABASE [datebase] SET OFFLINE WITH ROLLBACK IMMEDIATE
還原完數(shù)據(jù)庫之后再
ALTER database [ datebase] set online
設(shè)置了單用戶模式暴心,然后無法操作數(shù)據(jù)庫
早上過來準(zhǔn)備將服務(wù)器的數(shù)據(jù)庫分離姐浮,因為這個服務(wù)器的數(shù)據(jù)已經(jīng)不在需要,但是在分離的時候發(fā)現(xiàn)出現(xiàn)如下錯誤:數(shù)據(jù)庫 'xxx' 已打開超歌,并且一次只能有一個用戶訪問砍艾,后來查看數(shù)據(jù)庫的選項,果然被設(shè)置為了[SINGLE_USER]巍举,導(dǎo)致無法分離脆荷,估計是昨晚在備份數(shù)據(jù)庫之后不知道如何的就設(shè)置為了[SINGLE_USER]吧,現(xiàn)在需要將其設(shè)置為多用戶的模式禀综,在設(shè)置多用戶模式的時候可能會因為還有其它進(jìn)程的連接導(dǎo)致設(shè)置無法進(jìn)行简烘,所以需要殺掉所有連接的進(jìn)程苔严。使用如下SQL語句即可
USE master;
GO
DECLARE @SQL VARCHAR(3000);
SET @SQL = '';
SELECT @SQL = @SQL+'; KILL ' + RTRIM(SPID)
FROM [sys].[sysprocesses] AS sps
WHERE [sps].[dbid] = DB_ID('DB_NAME');
SET @SQL = SUBSTRING(@SQL, 2, LEN(@SQL));
EXEC(@SQL);
GO
##殺死進(jìn)程后定枷,修改為多用戶模式
ALTER DATABASE [Anncode_DB] SET MULTI_USER;