Mustaqil ish


Download 19.03 Kb.
Sana19.12.2021
Hajmi19.03 Kb.
#181629

MUSTAQIL ISH

Triggerlar - bu ma'lum bir harakat jadvalda yoki ko'rinishda bajarilganda, xususan ma'lumotlar qo'shilganda, o'zgartirilganda yoki o'chirilganda, ya'ni INSERT, UPDATE, DELETE buyruqlarini bajarishda avtomatik ravishda chaqiriladigan saqlanadigan protseduralarning maxsus turi.

Rasmiy trigger ta'rifi:

TRIGGER trigger_name ON yarating (jadval_nomasi | ko'rish_nomasi) (AFTER | INSTEAD OF) AS sql_expression

Tetikni yaratish uchun CREATE TRIGGER so'zi ishlatiladi va undan keyin trigger nomi beriladi. Odatda, trigger nomi operatsiyalar turini va operatsiya bajariladigan jadval nomini aks ettiradi.

Har bir trigger ma'lum bir jadval yoki ko'rinish bilan bog'liq bo'lib, ularning nomi ON so'zidan keyin paydo bo'ladi.

Keyin trigger turi o'rnatiladi. Ikkita turdan birini ishlatishimiz mumkin:

KO'P: harakat tugagandan so'ng bajariladi Faqat jadvallar uchun belgilangan.

INSTEAD OF: amal o'rniga amalga oshiriladi (ya'ni amal - qo'shish, o'zgartirish yoki o'chirish - umuman bajarilmaydi). Jadvallar va ko'rishlar uchun belgilangan

Trigger turidan keyin trigger aniqlanadigan operatsiya ko'rsatiladi: INSERT, UPDATE yoki DELETE.

Trigger uchun, bir vaqtning o'zida UPDATE va INSERT kabi bir nechta amallarga AFTERni qo'llash mumkin. Bunday holda, operatsiyalar vergul bilan ajratiladi. INSTEAD OF trigger uchun faqat bitta amalni aniqlash mumkin.

Va shundan keyin AS so'zidan keyin amalda tetik tanasini tashkil etadigan SQL iboralar to'plami keladi.

Tetikni yarataylik. Aytaylik, bizda quyidagi ta'rifga ega bo'lgan productdb ma'lumotlar bazasi bor:

DATABASE CREATE mahsulotini yarating; FOYDALANISH MAHSULOTI; Jadval mahsulotlarini yarating (Id identifikatsiya printsipi KEY, mahsulot nomi NVARCHAR (30) NULL emas, ishlab chiqaruvchi NVARCHAR (20) NULL emas, ProductCount 0 DEFAULT, narx PUL YO'Q);

Ma'lumotlarni qo'shish va yangilashda boshlanadigan tetikni aniqlaymiz:

USE mahsulotdb; Mahsulotlarni INSERTdan so'ng, yangilangandan so'ng mahsulotlarni SET narxlari \u003d narx + narx * 0.38 Qaerda id \u003d (SELECT ID FROM kiritilgan)

Aytaylik, Mahsulotlar jadvalida mahsulot haqidagi ma'lumotlar saqlanadi. Ammo mahsulotning narxi ko'pincha qo'shimcha to'lovlarni o'z ichiga oladi, masalan, qo'shilgan qiymat solig'i, korruptsiyaga solinadigan soliq va boshqalar. Ma'lumotni qo'shgan odam soliq bazasining barcha sirlarini bilmasligi mumkin va ular aniq narxni aniqlaydilar. Tetik yordamida biz mahsulot narxini ma'lum miqdorda sozlashimiz mumkin.

Shunday qilib, tetiklar Mahsulotlar jadvalidagi har qanday INSERT yoki UPDATE operatsiyalariga o't qo'yadi. Triggerning o'zi mahsulot narxini o'zgartiradi va qo'shilgan yoki o'zgartirilgan mahsulotni olish uchun biz ushbu mahsulotni Id tomonidan topamiz. Ammo bunday mahsulotning Id qiymati qanday qiymatga ega bo'lishi kerak? Gap shundaki, siz qo'shganingizda yoki o'zgartirganda ma'lumotlar kiritilgan oraliq jadvalga saqlanadi. U avtomatik ravishda yaratiladi. Va undan biz qo'shilgan / o'zgartirilgan mahsulotlar haqida ma'lumot olishimiz mumkin.

Va Mahsulotlar Mahsulotlar jadvaliga mahsulot qo'shgandan so'ng, aslida mahsulot qo'shishda aniqlanganidan biroz yuqori narxga ega bo'ladi:

Tetikni olib tashlash

Triggerni o'chirish uchun DROP TRIGGER buyrug'idan foydalaning:

TOZALASH TRIGGER mahsulotlari_INSERT_UPDATE

Tetikni o‘chirib qo‘yish

Biz triggerni to'xtatib qo'yishni xohlaymiz, ammo biz uni butunlay olib tashlamoqchi emasmiz. Bunday holda, uni DISABLE TRIGGER buyrug'i yordamida vaqtincha o'chirib qo'yish mumkin:

Mahsulotlarni ON-TOZA TAYYORLASH_INSERT_UPDATE

Agar trigger kerak bo'lsa, uni ENABLE TRIGGER buyrug'i yordamida yoqishingiz mumkin:

TRIGGER mahsulotlarini faollashtirish_INSERT_UPDATE mahsulot

DDL Trigger DML Trigger DML Triggerlari DML Voqealar: Umumiy kirish, o'chirish, yangilash DDL hodisalari: yaratish, tushirish, alter-logon SQL Server 2005-ga kiritilgan.

DML - trigger Object - table, VIEW Event - jadval uchun va VIEW uchun qo'shish, yangilash, o'chirish. Faollashtirish vaqti - operatorning buyrug'i bajarilishidan oldin (o'rniga) yoki keyin.

DML triggerlar Trigger - bu aniq bir voqea sodir bo'lganda har safar avtomatik ravishda bajariladigan blok - aniq voqea deb ataladigan protseduradan farqli o'laroq - jadvaldagi INSERT, UPDATE va DELETE, view - so'rov uchun tetikni aniqlab bo'lmaydi.

DML Triggerlari bitta ma'lumotlar bazasi jadvalida trigger yaratiladi, boshqa jadvallar va ob'ektlarning boshqa ma'lumotlar bazasidan foydalanish mumkin. Triggerlarni vaqtincha jadvallar yoki tizim jadvallarida yaratib bo'lmaydi, lekin faqat foydalanuvchi belgilagan jadval yoki ko'rinishda yaratishingiz mumkin. Trigger aniqlanadigan jadval trigger jadvali deb ataladi.

Triggerlar kerak bo'lganda ma'lumotlar o'zgarmasidan oldin va keyin jadval holatini baholash va ushbu farqga asoslanib choralar ko'rish. Jadvaldagi bir xil turdagi bir nechta DML (INSERT, UPDATE yoki DELETE) ma'lumotlarning o'zgarishi to'g'risida bitta bayonotga javoban bir nechta turli xil amallarni bajarishga imkon beradi.

Triggerlar kerak bo'lganda Bog'langan ma'lumotlar bazasi jadvallaridagi kaskadli o'zgartirishlar uchun (agar ma'lumotlarning yaxlitlik kaskadli cheklovlaridan foydalanib amalga oshirilmasa). Tasodifiy yoki noto'g'ri INSERT, UPDATE va DELETE operatsiyalarining oldini olish uchun CHECK cheklovi yordamida aniqlab bo'lmaydigan yaxlitlikni cheklash. DML triggerlari boshqa jadvallardagi ustunlarga murojaat qilishlari mumkin.

Batafsil ... Kirish va audit. Kengaytirilgan xavfsizlik qo'llab-quvvatlanishini talab qiladigan jadvallardagi o'zgarishlarni kuzatishda triggerlardan foydalanish mumkin. Jadval o'zgarishlari to'g'risidagi ma'lumotlar boshqa jadvallarda saqlanishi mumkin va masalan, foydalanuvchi identifikatori, yangilanish vaqti; yangilangan ma'lumotlarning o'zi va hokazo. ma'lumotlarni muvofiqlashtirish va tozalash. Har qanday bilan oddiy operator Ba'zi jadvallarni yangilaydigan SQL mos ravishda boshqa jadvallarni yangilaydigan triggerlarni bog'lab qo'yishi mumkin. Ma'lumotlar bazasini o'zgartirish bilan bog'liq bo'lmagan operatsiyalar. Triggerlar ma'lumotlar bazasini yangilash bilan kifoyalanmaydilar. SQL standarti elektron pochtani, hujjatlarni chop etishni va boshqalarni yuboradigan saqlanadigan protseduralarni (triggerlardan chaqirish mumkin) aniqlashga imkon beradi.

Triggerlardan foydalanish kerak bo'lmaganda DBMS deklarativ vositalaridan (qobiliyat cheklovlari yoki tashqi kalitlar) foydalanib erishilgan imkoniyatlarga ega bo'lgan triggerlarni ishlatishingiz shart emas.



riggerlarning asosiy parametrlari Jadval (yoki ko'rinish) nomi Qo'llash vaqti: Hodisadan so'ng (FOR) yoki INSTEAD: INSERT, UPDATE, DELETE (TRUNCATE TABLE yo'q qilinmaydi!) Trigger tanasi! Xuddi shu turdagi triggerlarni ishga tushirish ketma-ketligi o'zboshimchalik bilan amalga oshiriladi
Download 19.03 Kb.

Do'stlaringiz bilan baham:




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