Tôi cần biết cách thẩm vấn Microsoft SQL Server, để xem cơ sở dữ liệu đã cho đã được đặt thành Read-Only
hay chưa.Làm cách nào để phát hiện trạng thái chỉ đọc của cơ sở dữ liệu SQL Server bằng T-SQL?
Có thể sử dụng T-SQL không?
Tôi cần biết cách thẩm vấn Microsoft SQL Server, để xem cơ sở dữ liệu đã cho đã được đặt thành Read-Only
hay chưa.Làm cách nào để phát hiện trạng thái chỉ đọc của cơ sở dữ liệu SQL Server bằng T-SQL?
Có thể sử dụng T-SQL không?
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.
Đâ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
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'.
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');
Đ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. –
Vì vậy, điều này hoạt động tốt trên Azure: SELECT DATABASEPROPERTYEX (DB_NAME(), 'Updateability'); –
Perfect! CẢM ƠN!!! – Giuseppe