2 обхідні шляхи оновлення бази даних лише для читання у Windows SQL Server

Поділитися зараз:

Якщо база даних лише для читання, ви можете легко ідентифікувати статус за допомогою sys.databases або за допомогою SSMS. Загальновідомий факт полягає в тому, що ви не можете оновлювати дані в базі даних, лише для читання. У цій статті ми дізнаємося, як це усунути та виправити.

Два варіанти

Оновити базу даних лише для читання у Windows Vista SQL ServerМи можемо або використовувати SQL Server Management Studio, тобто SSMS або скрипт T-SQL для перетворення бази даних лише для читання в базу даних для читання-запису. Щоб краще зрозуміти ці варіанти, давайте

  1. Створити базу даних
  2. Створюйте в ньому таблиці
  3. Додайте записи до таблиці
  4. Зробіть базу даних лише для читання
  5. Спробуйте додати записи до однієї таблиці
  6. Перегляньте повідомлення про помилку
  7. Перетворіть базу даних назад у режим читання-запису

Підготувати базу даних

Від вашого SQL Server студії управління, підключіться до SQL server, клацніть правою кнопкою миші вузол “База даних”, а потім виберіть опцію “Нова база даних”. Натисніть Ok після введення імені для бази даних. Ви також можете використовувати скрипт T-SQL, як показано в прикладі нижче:

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

Створіть таблицю з SSMS, вибравши базу даних, клацніть правою кнопкою миші на вузлі "Таблиці", а потім наведіть вказівник на "Створити" та натисніть опцію "Таблиця ...". Введіть ім'я стовпця та типи даних, а потім збережіть з назвою таблиці. Ви можете використовувати запит нижче, щоб створити таблицю:

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

Додайте записи до таблиці, використовуючи такий запит:

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

використання SQL Server Management Studio, клацніть правою кнопкою миші на базі даних, а потім виберіть опцію “Властивості”. На сторінці властивостей бази даних у розділі «Параметри» встановіть параметр «База даних лише для читання» з «Істинно» на «Неправильно». Ви також можете переключити базу даних лише на читання за допомогою сценарію TSQL, як показано нижче:

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

Ви могли бачити, що SSMS тепер відображатиме статус "Лише для читання" біля імені бази даних.

Показати статус Лише для читання

Тепер спробуємо вставити новий запис у таблицю.

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

У вікні результату з’явиться таке повідомлення про помилку.

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

Поверніть стан бази даних для читання-запису, використовуючи сторінку Властивості бази даних і встановіть параметр "База даних лише для читання" з "False" на "True" або виконайте такий сценарій:

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

Тепер при спробі додати запис з’являється повідомлення про помилку «Не вдалося оновити базу даних»DataNumen"Оскільки база даних лише для читання" зникне. Ми всі знаємо, що резервні копії баз даних нам допомагають фіксувати SQL Server бази даних. Хоувере, резервна копія бази даних лише для читання відновить базу даних у режимі лише для читання, а не в режимі читання та запису.

Вступ автора:

Ніл Варлі - фахівець з відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі Відновлення Outlook та програмні продукти Excel для відновлення. Для отримання додаткової інформації відвідайте WWW.datanumen.com

Поділитися зараз:

Коментарі закриті.