1-mavzu. Ma’lumotlar bazasi obyektlarini yaratish


Ma`lumotlarni o`zgartirish



Download 0,87 Mb.
bet33/48
Sana23.06.2022
Hajmi0,87 Mb.
#694675
1   ...   29   30   31   32   33   34   35   36   ...   48
Bog'liq
мавзулар MBDM

Ma`lumotlarni o`zgartirish
Ma`lumotlarni yangilash tiggeri UPDATE operasiyasi amalga oshirilganda ishga tushadi. Bunday triggerda biz ikkita virtual jadvaldan foydalanishimiz mumkin. INSERTED jadvali qator qiymatlarini yangilanishdan keying variantini saqlaydi va DELETED jadvali qatorlarning dastlabki(ya’ni yangilanmasdan oldingi) qiymatlarini saqlaydi.
O`zgartirish triggerini yarataylik:
USE productsdb
GO
CREATE TRIGGER Products_UPDATE
ON Products
AFTER UPDATE
AS
INSERT INTO History (ProductId, Operation)
SELECT Id, 'Obnovlen tovar ' + ProductName + ' firma ' + Manufacturer
FROM INSERTED

Ma`lumotlar yangilanganida, bu trigger ishlaydi:



INSTEAD OF triggeri
INSTEAD OF triggeri ma`lumotlar bilan ishlash amallari o'rniga ishga tushadi. U printsipial ravishda AFTER triggri bilan bir xil aniqlanadi, farqi uni faqat bitta operasiya(INSERT, DELETE yoki UPDATE) uchun belgilash mumkin. U jadvalga ham, ko`rinishga ham qo`llanilishi mumkin (AFTER trigger faqat jadvallarga tegishli edi).
Masalan, quyidagi ma`lumotlar bazasini va jadvalini yarataylik:
CREATE DATABASE prods;
GO
USE prods;
CREATE TABLE Products
(
Id INT IDENTITY PRIMARY KEY,
ProductName NVARCHAR(30) NOT NULL,
Manufacturer NVARCHAR(20) NOT NULL,
Price MONEY NOT NULL,
IsDeleted BIT NULL
);

Bu yerda jadvalda yozuv o'chirilganligini ko`rsatuvchi IsDeleted ustuni mavjud. Ya'ni, ma`lumotlar bazasidan butunlay o'chirish o'rniga, biz IsDeleted qiymatini o`zgartiramiz, unda yozuv ma`lumotlar bazasida qoladi.


Yozuvni o'chirish uchun triggerni aniqlaymiz:
USE prods
GO
CREATE TRIGGER products_delete
ON Products
INSTEAD OF DELETE
AS
UPDATE Products
SET IsDeleted = 1
WHERE ID =(SELECT Id FROM deleted)

Jadvalga ba'zi ma`lumotlarni qo'shib, keyin undan o’chirib tashlaymiz:


USE prods;
INSERT INTO Products(ProductName, Manufacturer, Price)
VALUES ('iPhone X', 'Apple', 79000),
('Pixel 2', 'Google', 60000);
DELETE FROM Products
WHERE ProductName='Pixel 2';
SELECT * FROM Products;

Natija:




DDL triggerlar
Database Engine komponenti CREATE DATABASE, DROP TABLE va ALTER TABLE kabi DDL-instruksiyalar uchun triggerlarni aniqlashga imkon beradi. DDL operatorlar uchun triggerlar quyidagi sintaksisga ega:
CREATE TRIGGER [schema_name.]trigger_name
ON {ALL SERVER | DATABASE }
[WITH {ENCRYPTION | EXECUTE AS clause_name]
{FOR | AFTER } { event_group | event_type | LOGON}
AS {batch | EXTERNAL NAME method_name}

Download 0,87 Mb.

Do'stlaringiz bilan baham:
1   ...   29   30   31   32   33   34   35   36   ...   48




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish