2 Penyelesaian untuk Mengemas kini Pangkalan Data Hanya Baca di SQL Server

Kongsi Sekarang:

Sekiranya pangkalan data hanya boleh dibaca, anda boleh mengenal pasti status dari pangkalan data sys. atau SSMS dengan mudah. Fakta terkenal ialah anda tidak dapat mengemas kini data dalam pangkalan data hanya baca. Dalam artikel ini, kami akan belajar bagaimana menyelesaikan masalah dan memperbaikinya.

Dua pilihan

Kemas kini Pangkalan Data Hanya Baca Di SQL ServerKita boleh menggunakan SQL Server Studio Pengurusan iaitu, skrip SSMS atau T-SQL untuk menukar pangkalan data hanya baca menjadi pangkalan data baca-tulis. Untuk memahami pilihan ini dengan lebih baik, mari kita

  1. Buat pangkalan data
  2. Buat jadual di dalamnya
  3. Tambahkan rekod ke jadual
  4. Jadikan pangkalan data sebagai baca sahaja
  5. Cuba tambahkan rekod ke jadual yang sama
  6. Semak mesej ralat
  7. Tukar pangkalan data kembali ke mod baca-tulis

Sediakan Pangkalan Data

Dari anda SQL Server studio pengurusan, sambungkan ke anda SQL server, klik kanan simpul "Pangkalan Data" dan kemudian pilih pilihan "Pangkalan Data Baru". Tekan Ok setelah menaip nama pangkalan data. Anda juga dapat menggunakan skrip T-SQL seperti yang ditunjukkan dalam contoh di bawah:

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

Buat tabel dari SSMS dengan memilih pangkalan data, klik kanan pada simpul "Tables" dan kemudian arahkan ke "Baru" dan klik pilihan "Jadual…". Masukkan nama Lajur dan jenis data dan kemudian simpan dengan nama jadual. Anda boleh menggunakan pertanyaan di bawah untuk membuat jadual:

USE [DataNumen]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Table1](
 [Col1] [nchar](10) NULL
) ON [PRIMARY]
GO

Tambahkan rekod ke jadual menggunakan pertanyaan berikut:

Insert into [dbo].[Table1] values ('Testvalue')
The result window of SSMS will show the following message:
 
(1 row(s) affected)

Menggunakan SQL Server Studio Pengurusan, klik kanan pangkalan data dan kemudian pilih pilihan "Properties". Pada halaman sifat Pangkalan Data, di bawah "Pilihan", tetapkan pilihan "Pangkalan Data Hanya Baca" dari "Benar" ke "Salah". Anda juga dapat menukar pangkalan data ke hanya baca menggunakan skrip TSQL seperti yang ditunjukkan di bawah:

USE [master]
GO
ALTER DATABASE [DataNumen] SET READ_ONLY WITH NO_WAIT
GO

Anda dapat melihat bahawa SSMS sekarang akan menunjukkan status "Hanya baca" berhampiran nama pangkalan data.

Tunjukkan Status Hanya Baca

Sekarang, mari kita cuba memasukkan rekod baru ke dalam jadual.

Insert into [dbo].[Table1] values ('Testvalue2')

Mesej ralat berikut akan muncul di tetingkap hasil.

Msg 3906, Level 16, State 1, Line 12
Failed to update database "DataNumen" because the database is read-only.

Kembalikan status pangkalan data untuk membaca-menulis menggunakan halaman Properti Pangkalan Data dan tetapkan pilihan dari "Pangkalan Data Hanya Baca" dari "Salah" ke "Benar" atau laksanakan skrip berikut:

USE [master]
GO
ALTER DATABASE [DataNumen] SET READ_WRITE WITH NO_WAIT
GO

Sekarang, ketika anda mencoba menambahkan catatan, pesan kesalahan "Gagal mengemas kini pangkalan data"DataNumen"Kerana pangkalan data hanya boleh dibaca" akan hilang. Kita semua tahu bahawa sandaran pangkalan data membantu kita menetapkan SQL Server pangkalan data. Bagaimanapun, sandaran pangkalan data hanya baca akan memulihkan pangkalan data dalam mod baca sahaja dan bukan dalam mod baca-baca.

Pengenalan Pengarang:

Neil Varley adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk Pemulihan Outlook dan produk perisian pemulihan yang unggul. Untuk maklumat lebih lanjut, lawati www.datanumen.com

Kongsi Sekarang:

Ruangan komen telah ditutup.