IN SQL server Triggerlarning xatti -harakatlarini aniqlaydigan ikkita parametr mavjud:
SONRA. Trigger uni chaqirgan buyruqlar muvaffaqiyatli bajarilgandan keyin bajariladi. Agar buyruqlar biron sababga ko'ra muvaffaqiyatli bajarilmasa, tetik bajarilmaydi. Shuni ta'kidlash kerakki, foydalanuvchi so'rovi va tetikni bajarilishi natijasida ma'lumotlar o'zgarishi bitta tranzaktsiyada amalga oshiriladi: agar tetik orqaga qaytsa, foydalanuvchi o'zgarishlari ham rad etiladi. Har bir operatsiya uchun bir nechta AFTER tetikleyicisini aniqlash mumkin (INSERT, UPDATE, DELETE). Agar jadvalda bir nechta AFTER tetikleyici bo'lsa, sp_settriggerorder tizimida saqlanadigan protseduradan qaysi biri birinchi bajarilishini va qaysi oxirgi bajarilishini belgilash mumkin. SQL Server -da sukut bo'yicha, barcha tetikler AFGA tetikleyicidir.
O'RNIGA. Buyruqlarni bajarish o'rniga tetik chaqiriladi. AFTER tugmachasidan farqli o'laroq, INSTEAD OF -trigger jadval uchun ham, ko'rish uchun ham aniqlanishi mumkin. Har bir INSERT, UPDATE, DELETE operatsiyalari uchun faqat bitta INSTEAD OF trigger belgilanishi mumkin.
Triggerlar javob beradigan buyruqlar turi bilan ajralib turadi.
Triggerlarning uch turi mavjud:
INSERT TRIGGER - INSERT buyrug'i yordamida ma'lumotlarni kiritishga urinishda tetiklanadi.
UPDATE TRIGGER - UPDATE buyrug'i yordamida ma'lumotlarni o'zgartirishga urinish paytida ishdan chiqariladi.
DELETE TRIGGER - DELETE buyrug'i yordamida ma'lumotlarni o'chirmoqchi bo'lganingizda o'chiriladi.
Qurilishlar [O'CHIRISH] [,] [INSERT] [,] [YANGILASH] va UCHUN | KEYIN | O'RNIGA) ([,] trigger qaysi buyruqqa javob berishini aniqlang. Uni yaratishda kamida bitta buyruq ko'rsatilishi kerak. Ruxsat berilgan tetik yaratish ikkita yoki uchta buyruqqa javob berish.
WITH APPEND argumenti har bir turdagi bir nechta tetiklarni yaratishga imkon beradi.
Da tetik yaratish NOT REPLICATION argumenti bilan replikatsiya dvigatellari jadvallarni yangilab turganda uning ishlashiga to'sqinlik qilinadi.
AS build sql_operator [... n] tetik ishga tushirilganda bajariladigan SQL bayonotlar va buyruqlar to'plamini belgilaydi.
E'tibor bering, tetik ichida bir qancha operatsiyalarga ruxsat berilmaydi, masalan:
ma'lumotlar bazasini yaratish, o'zgartirish va o'chirish;
tiklanish zaxira ma'lumotlar bazasi yoki tranzaktsiyalar jurnali.
Bu buyruqlarga ruxsat berilmaydi, chunki agar ular tetiklanayotgan tranzaksiya qaytarilsa, ularni qaytarib bo'lmaydi. Bu taqiq hech qanday tarzda yaratilgan tetiklarning funksiyasiga hech qanday ta'sir ko'rsatmaydi. Vaziyatni topish qiyin, masalan, jadvaldagi qatorni o'zgartirgandan so'ng, tranzaktsiyalar jurnalining zaxira nusxasini tiklash kerak bo'ladi.
Do'stlaringiz bilan baham: |