2 გამოსავალი მხოლოდ წაკითხვადი მონაცემთა ბაზის განახლებისთვის SQL Server

გააზიარე ახლა:

თუ მონაცემთა ბაზა არის მხოლოდ წაკითხვადი, თქვენ შეგიძლიათ მარტივად ამოიცნოთ სტატუსი sys.databases-დან ან SSMS-დან. ცნობილი ფაქტია, რომ თქვენ არ შეგიძლიათ განაახლოთ მონაცემები მხოლოდ წაკითხვის მონაცემთა ბაზაში. ამ სტატიაში ჩვენ ვისწავლით, თუ როგორ უნდა მოგვარდეს და გამოსწორდეს ეს.

ორი ვარიანტი

განაახლეთ მხოლოდ წაკითხვადი მონაცემთა ბაზა SQL Serverჩვენ შეგვიძლია გამოვიყენოთ SQL Server მენეჯმენტის სტუდია, ანუ SSMS ან T-SQL სკრიპტი მხოლოდ წაკითხული მონაცემთა ბაზის წაკითხვა-ჩაწერის მონაცემთა ბაზად გადასაყვანად. ამ ვარიანტების უკეთ გასაგებად, მოდით

  1. მონაცემთა ბაზის შექმნა
  2. შექმენით ცხრილები მასში
  3. დაამატეთ ჩანაწერები ცხრილში
  4. გააკეთეთ მონაცემთა ბაზა მხოლოდ წასაკითხად
  5. სცადეთ ჩანაწერების დამატება იმავე ცხრილში
  6. გადახედეთ შეცდომის შეტყობინებას
  7. დააბრუნეთ მონაცემთა ბაზა წაკითხვის-ჩაწერის რეჟიმში

მოამზადეთ მონაცემთა ბაზა

თქვენი SQL Server მართვის სტუდია, დაუკავშირდით თქვენს SQL serverდააწკაპუნეთ მაუსის მარჯვენა ღილაკით კვანძზე „მონაცემთა ბაზა“ და შემდეგ აირჩიეთ „New Database“. დააჭირეთ 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 მართვის სტუდია, დააწკაპუნეთ მაუსის მარჯვენა ღილაკით მონაცემთა ბაზაზე და შემდეგ აირჩიეთ ოფცია „თვისებები“. მონაცემთა ბაზის თვისებების გვერდზე, "პარამეტრების" ქვეშ, დააყენეთ ვარიანტი "მონაცემთა ბაზის მხოლოდ წაკითხვადი" "True"-დან "False". თქვენ ასევე შეგიძლიათ გადართოთ მონაცემთა ბაზა მხოლოდ წაკითხვაზე 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.

დააბრუნეთ მონაცემთა ბაზის სტატუსი წაკითხვა-ჩაწერაზე მონაცემთა ბაზის თვისებების გვერდის გამოყენებით და დააყენეთ ოფცია „მონაცემთა ბაზის მხოლოდ წაკითხულიდან“ „მცდარი“-დან „ჭეშმარიტად“ ან შეასრულეთ შემდეგი სკრიპტი:

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

ახლა, როდესაც თქვენ ცდილობთ ჩანაწერის დამატებას, შეცდომის შეტყობინება "ვერ მოხერხდა მონაცემთა ბაზის განახლება"DataNumen”რადგან მონაცემთა ბაზა მხოლოდ წაკითხულია” გაქრება. ჩვენ ყველამ ვიცით, რომ მონაცემთა ბაზის სარეზერვო ასლები გვეხმარება დაფიქსირება SQL Server მონაცემთა ბაზები. თუმცა, მხოლოდ წაკითხვის მონაცემთა ბაზის სარეზერვო ასლი აღადგენს მონაცემთა ბაზას მხოლოდ წაკითხვის რეჟიმში და არა წაკითხვა-ჩაწერის რეჟიმში.

ავტორი შესავალი:

ნილ ვარლი არის მონაცემთა აღდგენის ექსპერტი DataNumen, Inc., რომელიც მსოფლიო ლიდერია მონაცემთა აღდგენის ტექნოლოგიებში, მათ შორის Outlook აღდგენა და Excel-ის აღდგენის პროგრამული პროდუქტები. დამატებითი ინფორმაციისთვის ეწვიეთ www.datanumen. ერთად

გააზიარე ახლა:

კომენტარები დახურულია.