2010-05-28 24 views

Trả lời

31

Thông tin được lưu trữ trong sys.databases.

SELECT name, is_read_only 
FROM sys.databases 
WHERE name = 'MyDBNAme' 
GO 

--returns 1 in is_read_only when database is set to read-only mode. 
+0

Perfect! CẢM ƠN!!! – Giuseppe

6

Đây là command để hiển thị hoặc đặt thuộc tính này.

EXEC sp_dboption "AdventureWorks", "read only" 

Mẫu đầu ra

OptionName CurrentSetting  
read only OFF 
4

Tôi đã cố gắng sử dụng câu trả lời của p.campbell để kiểm tra xem Azure SQL DB của tôi là chính một hoặc chỉ đọc bản sao - nó đã không làm việc . Cả DB chính và bản sao trả về đều có 0 trên trường is_read_only.

Đây là những gì làm việc cho tôi:

SELECT DATABASEPROPERTYEX('MyDBNAme', 'Updateability'); 

trên chọn trở về tuyên bố chuỗi 'READ_ONLY' hoặc 'READ_WRITE'.

11

Truy vấn sys.databases để kiểm tra tài sản Read-Only của DB chỉ sẽ cung cấp thông tin chính xác nếu cơ sở dữ liệu đã được rõ ràng thiết lập để chế độ chỉ đọc.

Đối với cơ sở dữ liệu nằm trong máy chủ thụ động (ví dụ: trong công nghệ AlwaysOn Secondary Servers), mặc dù cơ sở dữ liệu không thể được ghi vào, chế độ Chỉ đọc trong sys.databases vẫn được đặt là False(0).

Do đó, nó là khuyến khích để kiểm tra chế độ Read-Only cơ sở dữ liệu sử dụng câu lệnh:

SELECT DATABASEPROPERTYEX('MyDBNAme', 'Updateability'); 
+0

Điều này làm việc cho tôi cũng như để kiểm tra tiểu học vs Trung trên cơ sở dữ liệu Azure. Lưu ý, các giá trị trả về là READ_ONLY và READ_WRITE. Ngoài ra, trong Azure, nếu bạn truy vấn từ cơ sở dữ liệu không khớp với tên cơ sở dữ liệu được truyền vào tham số đầu tiên, kết quả sẽ là NULL. –

+0

Vì vậy, điều này hoạt động tốt trên Azure: SELECT DATABASEPROPERTYEX (DB_NAME(), 'Updateability'); –

Các vấn đề liên quan