Bir veritabanı salt okunursa, durumu sys.databases veya SSMS'den kolayca belirleyebilirsiniz. İyi bilinen bir gerçek, salt okunur bir veritabanındaki verileri güncelleyemeyeceğinizdir. Bu yazıda, bunu nasıl gidereceğimizi ve düzelteceğimizi öğreneceğiz.
İki seçenek
Ya kullanabiliriz SQL Server Salt okunur bir veritabanını okuma-yazma veritabanına dönüştürmek için Management Studio yani SSMS veya T-SQL betiği. Bu seçenekleri daha iyi anlamak için
- Bir veritabanı oluşturun
- İçinde tablolar oluşturun
- Tabloya kayıt ekleme
- Veritabanını salt okunur yap
- Aynı tabloya kayıt eklemeyi deneyin
- Hata mesajını inceleyin
- Veritabanını okuma-yazma moduna geri dönüştürün
Veritabanını Hazırla
Senden SQL Server yönetim stüdyosu, bilgisayarınıza bağlanın SQL server, "Veritabanı" düğümüne sağ tıklayın ve ardından "Yeni Veritabanı" seçeneğini seçin. Veritabanı için bir ad yazdıktan sonra Tamam'a basın. Aşağıdaki örnekte gösterildiği gibi T-SQL betiğini de kullanabilirsiniz:
CREATE DATABASE [DataNumen] CONTAINMENT = NONE ON PRIMARY ( NAME = N'DataNumen', FILENAME = N'E:\Program Files\MSSQL12.MSSQLSERVER\MSSQL\DATA\DataNumen.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB ) LOG ON ( NAME = N'DataNumen_log', FILENAME = N'E:\Program Files\MSSQL12.MSSQLSERVER\MSSQL\DATA\DataNumen_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%) GO
Veritabanını seçerek SSMS'den bir tablo oluşturun, “Tablolar” düğümüne sağ tıklayın ve ardından “Yeni” üzerine gelin ve “Tablo…” seçeneğine tıklayın. Sütun adını ve veri türlerini girin ve ardından bir tablo adıyla kaydedin. Bir tablo oluşturmak için aşağıdaki sorguyu kullanabilirsiniz:
USE [DataNumen] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Table1]( [Col1] [nchar](10) NULL ) ON [PRIMARY] GO
Aşağıdaki sorguyu kullanarak tabloya kayıt ekleyin:
Insert into [dbo].[Table1] values ('Testvalue')
The result window of SSMS will show the following message: (1 row(s) affected)
kullanma SQL Server Management Studio, veritabanına sağ tıklayın ve ardından “Özellikler” seçeneğini seçin. Veritabanı özellikleri sayfasında, "Seçenekler" altında, "Veritabanı Salt Okunur" seçeneğini "Doğru"dan "Yanlış"a ayarlayın. Aşağıda gösterildiği gibi TSQL betiğini kullanarak veritabanını salt okunur olarak da değiştirebilirsiniz:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_ONLY WITH NO_WAIT GO
SSMS'nin artık veritabanı adının yanında "Salt okunur" durumunu göstereceğini görebilirsiniz.
Şimdi tabloya yeni bir kayıt eklemeye çalışalım.
Insert into [dbo].[Table1] values ('Testvalue2')
Sonuç penceresinde aşağıdaki hata mesajı görünecektir.
Msg 3906, Level 16, State 1, Line 12 Failed to update database "DataNumen" because the database is read-only.
Veritabanı Özellikleri sayfasını kullanarak veritabanı durumunu okuma-yazmaya geri döndürün ve "Veritabanı Salt Okunur" seçeneğini "Yanlış"tan "Doğru"ya ayarlayın veya aşağıdaki betiği çalıştırın:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_WRITE WITH NO_WAIT GO
Şimdi, bir kayıt eklemeye çalıştığınızda “Veritabanı güncellenemedi” hata mesajıDataNumen”Çünkü veritabanı salt okunurdur” ifadesi kaybolacaktır. Veritabanı yedeklerinin bize yardımcı olduğunu hepimiz biliyoruz. düzeltmek SQL Server veritabanları. Ancak, salt okunur bir veritabanının yedeği, bir veritabanını okuma-yazma modunda değil, salt okunur modunda geri yükleyecektir.
Yazar Tanıtımı:
Neil Varley bir veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. Outlook kurtarma ve excel kurtarma yazılımı ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com