Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

thay đổi cơ sở dữ liệu thành 'trực tuyến' và đặt db thành 'nhiều người dùng'

^ Đâ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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để cập nhật một cột mới được thêm vào trong cùng một câu lệnh lô

  2. SSRS:Cách tạo bảng tổng hợp LIKe báo cáo trong ssrs 2008 r2

  3. Chuyển đổi ‘datetime2’ thành ‘datetimeoffset’ trong SQL Server (Ví dụ T-SQL)

  4. Cập nhật bản ghi Top 1 trong máy chủ sql bảng

  5. Tại sao tôi không thể truy vấn truy vấn OFFSET / FETCH trên SQL Server của mình?