^ Đây là vấn đề bạn cần giải quyết.
Đảm bảo rằng bạn không ở trong cơ sở dữ liệu đó. Đóng bất kỳ cửa sổ truy vấn nào được kết nối với nó, tắt Chi tiết của Object Explorer, đóng SSMS và mở lại nó mà không có Object Explorer được kết nối với máy chủ đó, v.v. Chạy cái này:
USE [master];
GO
ALTER DATABASE mydb SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
USE mydb;
GO
Điều đó sẽ cho phép bạn đưa nó trực tuyến, sau đó bạn sẽ chạy các lệnh mà bạn đã liệt kê.
Tuy nhiên:
- Quá trình này có thể mất nhiều thời gian hơn bạn có thể, tùy thuộc vào hoạt động khôi phục nào xảy ra đối với các phiên bạn đang thực hiện.
- Luôn có thể xảy ra khi bạn đặt nó thành một người dùng, một quá trình khác có thể nhanh hơn bạn và sử dụng một kết nối duy nhất đó. Nếu bạn thấy rằng điều này xảy ra, bạn có thể tìm ra người đó đang sử dụng sp_whoisactive
hoặc các DMV như
sys.dm_tran_locks
- có thể bạn cần tạm ngừng kết nối các ứng dụng và / hoặc tắt SQL Server Agent.