Nếu bạn cố gắng truy cập cơ sở dữ liệu đã ở chế độ Người dùng đơn, bạn cần đóng tất cả các kết nối với cơ sở dữ liệu trước, nếu không bạn sẽ nhận được thông báo lỗi:
Msg 5064, Cấp 16, Trạng thái 1, Dòng 1 Thay đổi trạng thái hoặc tùy chọn của cơ sở dữ liệu 'DatabaseName' không thể được thực hiện tại thời điểm này. Cơ sở dữ liệu ở chế độ một người dùng và người dùng hiện đang kết nối với nó. Msg 5069, Cấp 16, Trạng thái 1, Dòng 1 Thay đổi câu lệnh ALTER DATABASE không thành công.
Các truy vấn sau đây giết chết các quá trình truy cập vào cơ sở dữ liệu:
-- 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
Sau đó, bạn sẽ có thể đưa cơ sở dữ liệu trở lại chế độ Nhiều người dùng như bình thường:
ALTER DATABASE 'DatabaseName' SET MULTI_USER