Helpex - Trao đổi & giúp đỡ Đăng nhập
45

Đã thực hiện triển khai DB (từ dự án cơ sở dữ liệu VS SQL Server) trên cơ sở dữ liệu cục bộ, nhưng không thành công, cơ sở dữ liệu đã được để ở trạng thái bật chế độ người dùng duy nhất (triển khai chạy ở chế độ người dùng duy nhất).

Khi tôi kết nối với nó từ SSMS và thử một cái gì đó như sau:

ALTER DATABASE MyDatabase
SET MULTI_USER;
GO

Tôi gặp lỗi:

Không thể thực hiện các thay đổi đối với trạng thái hoặc các tùy chọn của cơ sở dữ liệu 'MyDatabase' vào lúc này. Cơ sở dữ liệu ở chế độ một người dùng và một người dùng hiện được kết nối với nó.

Tôi đã thử lấy cơ sở dữ liệu ngoại tuyến, mà SSMS cho tôi biết thành công, nhưng nó dường như không thực sự làm được gì. Cho đến nay, tôi chỉ có thể giải quyết vấn đề này bằng cách thả và tạo lại cơ sở dữ liệu (điều này không sao cả, vì nó chỉ là cơ sở dữ liệu thử nghiệm cục bộ). Tuy nhiên, tôi muốn có thể đặt lại trạng thái.

Làm cách nào để thuyết phục SQL Server đưa cơ sở dữ liệu này ra khỏi chế độ một người dùng?

45 hữu ích 0 bình luận 65k xem chia sẻ
149

Trong lần đầu tiên chạy truy vấn sau trong cơ sở dữ liệu chính

exec sp_who

Nếu bạn không thể tìm ra thủ phạm, hãy thử

SELECT request_session_id FROM sys.dm_tran_locks 
WHERE resource_database_id = DB_ID('YourDatabase')

Sau đó, giết tất cả quá trình sử dụng cơ sở dữ liệu của bạn bằng truy vấn sau:

KILL spid

Sau đó chạy truy vấn sau:

USE Master
ALTER DATABASE YourDatabase SET MULTI_USER
149 hữu ích 4 bình luận chia sẻ
3

Hãy thử các lệnh dưới đây

Đầu tiên hãy chạy ba lệnh này

USE [master] 
SET DEADLOCK_PRIORITY HIGH
exec sp_dboption MyDBName, 'single user', 'FALSE';

Lần thứ hai chạy hai lệnh này

ALTER DATABASE MyDBName SET MULTI_USER WITH NO_WAIT
ALTER DATABASE MyDBName SET MULTI_USER WITH ROLLBACK IMMEDIATE
3 hữu ích 0 bình luận chia sẻ
1

Điều này đã được trả lời ở đây , mã là:

use master
ALTER DATABASE YourDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE 

--do you stuff here 

ALTER DATABASE YourDatabase SET MULTI_USER
1 hữu ích 3 bình luận chia sẻ
0

Sử dụng DAC (Kết nối quản trị chuyên dụng) . Đảm bảo rằng bạn đã bật nó trước Trong SSMS, nhập quản trị viên: cho Tên máy chủ sau khi kết nối với ALTER DATABASE chính SET MULTI_USER

0 hữu ích 0 bình luận chia sẻ
0

Để buộc cập nhật, hãy sử dụng "với tính năng khôi phục ngay lập tức"

ALTER DATABASE [DATABASE_NAME] SET MULTI_USER  with rollback immediate
0 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ sql sql server database sql server 2008 database-deployment , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading