Agar ma'lumotlar bazasi faqat o'qish uchun mo'ljallangan bo'lsa, sys.databases yoki SSMS dan holatni osongina aniqlashingiz mumkin. Ma'lumki, siz faqat o'qish uchun mo'ljallangan ma'lumotlar bazasidagi ma'lumotlarni yangilay olmaysiz. Ushbu maqolada biz ushbu muammoni qanday hal qilish va tuzatishni o'rganamiz.
Ikki variant
Biz ham foydalanishimiz mumkin SQL Server Management Studio, ya'ni, faqat o'qish uchun ma'lumotlar bazasini o'qish-yozish ma'lumotlar bazasiga aylantirish uchun SSMS yoki T-SQL skripti. Ushbu variantlarni yaxshiroq tushunish uchun keling
- Ma'lumotlar bazasini yarating
- Uning ichida jadvallar yarating
- Jadvalga yozuvlar qo'shing
- Ma'lumotlar bazasini faqat o'qish uchun qiling
- Xuddi shu jadvalga yozuvlarni qo'shishga harakat qiling
- Xato xabarini ko'rib chiqing
- Ma'lumotlar bazasini o'qish-yozish rejimiga aylantiring
Ma'lumotlar bazasini tayyorlang
Siznikidan SQL Server boshqaruv studiyasiga ulaning SQL server, "Ma'lumotlar bazasi" tugunini o'ng tugmasini bosing va keyin "Yangi ma'lumotlar bazasi" variantini tanlang. Ma'lumotlar bazasi nomini kiritgandan so'ng Ok tugmasini bosing. Quyidagi misolda ko'rsatilganidek, T-SQL skriptidan ham foydalanishingiz mumkin:
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
Ma'lumotlar bazasini tanlash orqali SSMS-dan jadval yarating, "Jadvallar" tugunini o'ng tugmasini bosing va keyin "Yangi" ni ko'rsating va "Jadval ..." opsiyasini bosing. Ustun nomi va ma'lumotlar turlarini kiriting va keyin jadval nomi bilan saqlang. Jadval yaratish uchun quyidagi so'rovdan foydalanishingiz mumkin:
USE [DataNumen] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Table1]( [Col1] [nchar](10) NULL ) ON [PRIMARY] GO
Quyidagi so'rov yordamida jadvalga yozuvlar qo'shing:
Insert into [dbo].[Table1] values ('Testvalue')
The result window of SSMS will show the following message: (1 row(s) affected)
foydalanish SQL Server Management Studio, ma'lumotlar bazasini sichqonchaning o'ng tugmasi bilan bosing va keyin "Xususiyatlar" ni tanlang. Ma'lumotlar bazasi xususiyatlari sahifasida "Tanlovlar" bo'limida "Faqat o'qish uchun ma'lumotlar bazasi" opsiyasini "To'g'ri" dan "Yolg'on" ga o'rnating. Quyida ko'rsatilganidek, TSQL skripti yordamida ma'lumotlar bazasini faqat o'qishga o'tkazishingiz mumkin:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_ONLY WITH NO_WAIT GO
SSMS endi ma'lumotlar bazasi nomi yonida "Faqat o'qish" holatini ko'rsatishini ko'rishingiz mumkin.
Keling, jadvalga yangi rekord qo'yishga harakat qilaylik.
Insert into [dbo].[Table1] values ('Testvalue2')
Natija oynasida quyidagi xato xabari paydo bo'ladi.
Msg 3906, Level 16, State 1, Line 12 Failed to update database "DataNumen" because the database is read-only.
Maʼlumotlar bazasi xususiyatlari sahifasidan foydalanib oʻqish-yozish uchun maʼlumotlar bazasi holatini qaytaring va “Faqat maʼlumotlar bazasini oʻqish uchun” opsiyasini “False”dan “True”ga oʻrnating yoki quyidagi skriptni bajaring:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_WRITE WITH NO_WAIT GO
Endi, yozuv qo'shmoqchi bo'lganingizda, "Ma'lumotlar bazasini yangilab bo'lmadi" xato xabariDataNumen"Ma'lumotlar bazasi faqat o'qish uchun mo'ljallanganligi sababli" yo'qoladi. Ma'lumotlar bazasining zaxira nusxalari bizga yordam berishini hammamiz bilamiz tuzatish SQL Server ma'lumotlar bazalari. Biroq, faqat o'qish uchun ma'lumotlar bazasining zaxira nusxasi ma'lumotlar bazasini o'qish-yozish rejimida emas, balki faqat o'qish rejimida tiklaydi.
Muallif kirish:
Neil Varli - ma'lumotlarni qayta tiklash bo'yicha mutaxassis DataNumenMa'lumotlarni qayta tiklash texnologiyalari bo'yicha jahon yetakchisi bo'lgan , Inc Outlookni tiklash va excel tiklash dasturiy mahsulotlar. Qo'shimcha ma'lumot olish uchun tashrif buyuring www.datanumen.com