यदि आप उस डेटाबेस तक पहुँचने का प्रयास करते हैं जो पहले से ही एकल-उपयोगकर्ता मोड में है, तो आपको पहले डेटाबेस के सभी कनेक्शनों को बंद करने की आवश्यकता है, अन्यथा आपको एक त्रुटि संदेश मिलेगा:
Msg 5064, Level 16, State 1, Line 1 राज्य में परिवर्तन या डेटाबेस 'DatabaseName' के विकल्प इस समय नहीं बनाए जा सकते हैं। डेटाबेस एकल-उपयोगकर्ता मोड में है, और एक उपयोगकर्ता वर्तमान में इससे जुड़ा हुआ है। Msg 5069, लेवल 16, स्टेट 1, लाइन 1 ALAT DATABASE स्टेटमेंट फेल हो गया।
निम्न क्वेरी डाटाबेस को ऐक्सेस प्रक्रियाओं को मारता है:
-- Create the sql to kill the active database connections
declare @execSql varchar(1000), @databaseName varchar(100)
-- Set the database name for which to kill the connections
set @databaseName = 'DatabaseName'
set @execSql = ''
select @execSql = @execSql + 'kill ' + convert(char(10), spid) + ' '
from master.dbo.sysprocesses
where db_name(dbid) = @databaseName
and
DBID <> 0
and
spid <> @@spid
exec(@execSql)
GO
फिर आपको सामान्य रूप से डेटाबेस को बहु-उपयोगकर्ता मोड में वापस लाने में सक्षम होना चाहिए:
ALTER DATABASE 'DatabaseName' SET MULTI_USER