SlideShare a Scribd company logo
1 of 35
Download to read offline
Mr. Phonepaseuth PHONHDALA 1
SQL Server 2000
ພາກທີ 6
ການສາງ້ ແລະການໃຊວຽກ້ Trigger
Mr. Phonepaseuth PHONHDALA 2
6.1. ນາສະເໜກຽວກບໍ ີ ັ່ Triggers
ເມອໃດກຕາມທຂມູນມການປຽນແປງເກດຂນື ໍ ີ ໍ ີ ີ ື່ ່ ່ ້ ້່ ເຮາສາມາດກາໜດໃຫົ ໍ ົ ້ Triggers
ກວດສອບຄວາມຖກຕອງຂອງຂມູນື ໍ້ ້
6.1.1. ຈຸດດຂອງີ ແລະຂຈາກດຂອງໍ ໍ ັ້ Triggers
ແລະຍງສາມາດກາໜດຄາສງໃຫສາມາດກວດສອບຖນັ ໍ ົ ໍ ັ ັ່ ້ ຫຂມູນທຢູຂາມຕາຕຼື ໍ ີ້ ່ ່ ້ ະ
ລາງກນໄດັ ້
ແຕການໃຊວຽກຂອງ່ ້ Triggers ຍງມຂຈາກດທຄວນພຈາລະນາດງຕໄປນັ ີ ໍ ໍ ັ ີ ິ ັ ໍ ີ້ ່ ່ ່ ້:
1. ບສາມາດສາງໄດໃນຕາຕະລາງຊວຄາວໍ ົ່ ່້ ້ (Temporary Table) ແຕເຮດໄດພຽງ່ ້ັ
ການອາງອງເຖງເທານນ້ ີ ິ ົ ັ່ ້ .
2. ບສາມາດສງຂມູນກບມາເປນຣຄອດເຊດໍ ົ ໍ ັ ັ ີ ັ່ ່ ້ ( Record set ) ໄດ້
3. ຄວນໃຊ້ Triggers ໃນເລອງຂອງການດູແລຂມູນໃຫຖກຕອງື ໍ ື່ ້ ້ ້
Mr. Phonepaseuth PHONHDALA 3
4. ການໃຊຄເວດ້ ີ ີ WRITETEXT ໃນການແກໄຂປະເພດຂມູນຊະນດ້ ໍ ິ້ text ແລະ
image ນອກຈາກຈະບມການຂຽນໂອເປເຣເຊນລງສູທຣານເຊກເຊນລອກແລວໍ ີ ີ ີ ົ ັ ີ ັ່ ່ ້ ຍງັ
ບເປນການປຸກໃຫໍ ັ່ ້ Triggers ມການເຮດວຽກເກດຂນີ ັ ີ ື້
5. ຄາສງຕາງໆທບສາມາດໃຊພາຍໃນໍ ັ ີ ໍ່ ່ ່່ ້ ໄດມດງນ້ ີ ັ ີ່ ້:
ALTER DATABASE CREATE DATABASE DISK INIT
DROP DATABASE LOAD DATABASE DISK REZISE
RESTORE DATABASE RECONFIGURE LOAD LOG
RESTORE LOG
6.1.2. ມາຮູຈກກບຕາຕະລາງ້ ັ ັ Inserted ແລະ Deleted
ເມອມການເຮດວຽກຮວມື ີ ັ່ ່ Triggers ຈະເກດຕາຕະລາງພເສດຂນີ ິ ຶ້ 2 ຕາຕະລາງ
ຄື: Inserted ແລະ Deleted ໂດຍເກບໄວຢູໜວຍຄວາມຈາັ ໍ້ ່ ່ ແລະຈະໃຊວຽກໄດ້ ້
ພຽງພາຍໃນໃນຊວງໄລຍະເວລາການເຮດວຽກຂອງ່ ັ Triggers ໜງຶ່ ໆ ເທານນົ ັ່ ້
Mr. Phonepaseuth PHONHDALA 4
ໃນແຕລະເທອຂອງການເກດເຫດການທກຽວຂອງກບການປຽນແປງ່ ່ ້ ່ື ີ ີ ັ່ ່ ແກໄຂຂມູນ້ ໍ້
ຈະເປນເຫດໃຫມການເພມຂມູນໃຫກບຕາຕະລາງພເສດດງນັ ີ ີ ໍ ັ ິ ັ ີ້ ້່ ້ ່ ້:
INSERT
DELETE
UPDATE
6.2. ປະເພດຂອງ Triggers
6.2.1. FOR Triggers ຫຼື AFTER Triggers
ເມອແບງຕາມລກຊະນະການໃຊວຽກແລວື ັ່ ່ ້ ້ Triggers ສາມາດແບງອອກເປນ່ ັ 2
ປະເພດຄື: AFTER Triggers ແລະ INSTEAD OF Triggers
ເປນັ Triggers ເຊງຈະເຮດວຽກພາຍຫງທມຄາສງິ ັ ັ ີ ີ ໍ ັ່ ່ ່ຼ Transaction-SQL ທກຽວີ່ ່
ຂອງກບກນປຽນແປງຂມູນ້ ່ັ ໍ້ ( INSERT, DELETE ແລະ UPDATE ) ສາເລດໍ ັ
ແລວ້
Mr. Phonepaseuth PHONHDALA 5
1. ເຮດຄາສງັ ໍ ັ່ Transaction-SQL ( INSERT, DELETE ແລະ UPDATE )
ກບຕາຕະລາງທຕອງການັ ີ່ ້
ຂນຕອນການເຮດວຽກຂອງັ ັ້ FOR Triggers
2. ທຕາຕະລາງມການກວດສອບຄວາມຖກຕອງຂອງຂມູນດວຍີ ີ ື ໍ່ ້້ ້ Constraint ຕາງ່ ໆ
3. ລະບບສາງຕາຕະລາງົ ້ Inserted ແລະ Deleted
4. ເລມການເຮດວຽກຂອງີ ັ່ FOR ຫຼື AFTER Triggers
6.2.2. INSTEAD OF Triggers
ຈະເຮດວຽກກອນການເຮດຄາສງັ ັ ໍ ັ່ ່ Transact-SQL ທກຽວຂອງກບການປຽນແປງີ ັ່ ່ ້ ່
ຂມູນໍ້ ຊວຍເຮດໃຫສາມາດສາງ່ ້ ້ັ Triggers ເພອເຮດວຽກຮວມກບື ັ ັ່ ່ View ໄດ້
1. ເຮດຄາສງັ ໍ ັ່ Transaction-SQL ( INSERT, DELETE ແລະ UPDATE )
ກບຕາຕະລາງັ ຫຼື ວວິ ທຕອງການີ່ ້
ຂນຕອນການເຮດວຽກຂອງັ ັ້ INSTEAD OF Triggers
Mr. Phonepaseuth PHONHDALA 6
4. ທຕາຕະລາງມການກວດສອບຄວາມຖກຕອງຂອງຂມູນດວຍີ ີ ື ໍ່ ້້ ້ Constraint ຕາງ່ ໆ
ຫາກ Triggers ມການໃຊຄາສງີ ໍ ັ້ ່ Transaction-SQL ( INSERT, DELETE
ແລະ UPDATE ) ກບຕາຕະລາງນນັ ັ້ ໆ
2. ລະບບສາງຕາຕະລາງົ ້ Inserted ແລະ Deleted
3. ເລມການເຮດວຽກຂອງີ ັ່ INSTEAD OF Triggers
ຂແຕກຕາງລະຫວາງໍ້ ່ ່ FOR Triggers ແລະ INSTEAD OF Triggers
ຟງເຊນັ ີ FOR | AFTER Triggers INSTEAD OF Triggers
ໃຊວຽກໄດກບ້ ້ ັ
ຈານວນໍ Triggers ຕຕາຕໍ່ ະ
ລາງ ຫຼື ວວິ
ຕາຕະລາງຢາງດຽວເທານນ່ ົ ັ່ ້ ທງັ ຕາຕະລາງ ແລະ ວວິ
ສາມາດສາງ້ Triggers ໄດຫາຍໆຕວ້ ຼ ົ
ເພອເຮດວຽກສາລບຄາສງື ັ ໍ ັ ໍ ັ່ ່ INSERT,
DELETE ແລະ UPDATE
ມໄດພຽງີ ້ 1 Triggers ຕຄາສງໍ ໍ ັ່ ່
INSERT, DELETE ແລະ UPDATE
Mr. Phonepaseuth PHONHDALA 7
ຟງເຊນັ ີ FOR | AFTER Triggers INSTEAD OF Triggers
ການໃຊວຽກຮວມກບ້ ່ ັ
Cascading References
ການກາໜດລາດບໃນການໍ ົ ໍ ັ
ເຮດວຽກັ
ໃນກລະນທມຫາຍໍ ີ ີ ີ່ ຼ ໆ Triggers ເຮດັ
ວຽກຮວມກນ່ ັ ສາມາດກາໜດລາດບໍ ົ ໍ ັ
ການເຮດວຽກສາລບັ ໍ ັ Triggers ຕວທາົ ໍ
ອດິ ແລະຕວສຸດທາຍໄດົ ້ ້
ບຈາເປນຕອງການດລາດບການເຮດວຽກໍ ໍ ັ ໍ ົ ໍ ັ ັ່ ້
ເນອງຈາກມພຽງື ີ່ 1 Triggers ຕຄາສງໍ ໍ ັ່ ່
INSERT, DELETE ແລະ UPDATE
ເທານນົ ັ່ ້ .
ປະເພດຂມູນສາລບຖນແບບໍ ໍ ັ ັ້
text, ntext ແລະ image
ເຊງຖກອາງອງໃນຕາຕະລາງິ ື ີ່ ້
Inserted ແລະ Deleted
ບມຂຈາກດໍ ີ ໍ ໍ ັ່ ້ ບອານຸຍາດໃຫໃຊວຽກຮວມກບຕາຕະລາງໍ ັ່ ້ ້ ່
ທມການຄວບຄຸມຄວາມຖກຕອງຂອງຂມູນີ ີ ື ໍ່ ້້
ໂດຍໃຊ້ Cascading Referential
Integrity
ບອານຸຍາດໍ່ ອານຸຍາດ
ຕາຕະລາງທີ 6.1 ຂແຕກຕາງລະຫວາງໍ້ ່ ່ FOR Triggers
ແລະ INSTEAD OF Triggers
Mr. Phonepaseuth PHONHDALA 8
6.3.6.3. ການສາງ້ການສາງ້ ແແລະຈດການັລະຈດການັ TriggersTriggers ດວຍ້ດວຍ້ TransactTransact--SQLSQL
6.3.1. ການສາງ້ Triggers
ມຮູບແບບດງນີ ັ ີ່ ້:
CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
} ]
sql_statement [ ...n ]
}
}
Mr. Phonepaseuth PHONHDALA 9
ຮູບທີ 6.1 ການສາງ້ Triggers ທຊີ ື່ ່ tr_ModifyCustomers
ການສາງ້ Triggers ເພອສງຂຄວາມແຈງເຕອນື ົ ໍ ື່ ່ ້ ້ ເມອມການເພມແຖວື ີ ີ່ ່ ຫແກຼື ້
ໄຂຂມູນເກດຂນໍ ີ ຶ້ ້
Mr. Phonepaseuth PHONHDALA 10
6.3.2. ການກວດສອບຂມູນໍ້ Triggers
ຮູບທີ 6.2 ການໃຊຄາສງເພອກວດສອບຂມູນ້ ໍ ັ ື ໍ່ ່ ້ Triggers
Mr. Phonepaseuth PHONHDALA 11
6.3.3. ການແກໄຂ້ Triggers
ຮູບທີ 6.3 ການແກໄຂ້ Triggers
ການສາງ້ Triggers ໂດຍການກາໜດອອບເຊນໍ ົ ີ WITH ENCRIPTION
ຈະບສາມາດໃຊໍ່ ້ sp_helptext ຫຼື Enterprise Manager ເພອກວດສອບລາຍລື່ ະ
ອຽດຂອງຄາສງພາຍໃນໄດໍ ັ່ ້.
ໝາຍເຫດ:
Mr. Phonepaseuth PHONHDALA 12
6.3.4. ການ Enable ແລະ Disable ການເຮດວຽກຂອງັ Triggers
ມຮູບແບບດງນີ ັ ີ່ ້:
ALTER TABLE table_name
[ENABLE | DISABLE] TRIGGER [ALL | trigger_name ]
ຮູບທີ 6.4 ການ DISABLE ແລະ ENABLE Triggers
Mr. Phonepaseuth PHONHDALA 13
6.3.5. ການປຽນຊ່ ື່ Triggers
ຮູບທີ 6.5 ການປຽນຊ່ ື່ Triggers
6.3.6. ການຈດລາດບການເຮດວຽກສາລບັ ໍ ັ ັ ໍ ັ Triggers
sp_settriggerorder[@triggername = ] 'triggername ',
[@order = ] 'value ',
[@stmttype = ] 'statement_type '
ມຮູບແບບດງນີ ັ ີ່ ້:
Mr. Phonepaseuth PHONHDALA 14
ຮູບທີ 6.6 ການຈດລາດບການເຮດວຽກສາລບັ ໍ ັ ັ ໍ ັ Triggers
ສາມາດກາໜດໄດພຽງລາດບທາອດໍ ົ ໍ ັ ໍ ິ້ ແລະລາດບສຸດທາຍເທານນໍ ັ ົ ັ້ ່ ້ , ສວນທເຫອ່ ີ ື່ ຼ
ຍງເປນລກສະນະການສຸມການເຮດວຽກຕາມປກກະຕັ ັ ັ ັ ົ ິ່
ຂຈາກດໃນການຈດລາດບການເຮດວຽກໍ ໍ ັ ັ ໍ ັ ັ້ :
Mr. Phonepaseuth PHONHDALA 15
6.3.7. ການລບຶ Triggers
ຮູບທີ 6.7 ການລບຶ Triggers
ມຮູບແບບດງນີ ັ ີ່ ້:
DROP TRIGGER { trigger } [ ,...n ]
ເນອງຈາກື່ Triggers ເປນອອບເຈກທຖກສາງໃຫຢດຕດກບຕາຕະລາງຂມູນັ ັ ີ ື ຶ ິ ັ ໍ່ ້້ ້ ດງັ່
ນນັ້ ຫາກມການລບຕາຕະລາງນນີ ຶ ັ້ ໆ ຈະເຮດໃຫັ ້ Triggers ທອາໄສຢູຖກລບໄປນາີ ື ຶ ໍ່ ່
ໝາຍເຫດ:
Mr. Phonepaseuth PHONHDALA 16
6.4.6.4. ການສາງ້ການສາງ້ ແແລະຈດການັລະຈດການັ TriggersTriggers ດວຍ້ດວຍ້ EnterpriseEnterprise
ManagerManager
1. ກດເມາສຂວາໃສຕາຕະລາງທຕອງການສາງົ ົ ີ໌ ່ ້ ້່ Triggers
2. ເລອກລາຍການື All Tasks > Manager Triggers…
ຮູບທີ 6.8 ໄດອະລອກບອກສາລບສາງັ ັ ໍ ັ ້ Triggers
Mr. Phonepaseuth PHONHDALA 17
6.4.1. ການຄວບຄຸມ Data Integrity ດວຍ້ Triggers
ເປນການນາັ ໍ Triggers ໄປຄວບຄຸມຄວາມຖກຕອງຂອງຂມູນື ໍ້ ້ ດງປະເພດຂອງັ່
Triggers ຕໄປນໍ ີ່ ້:
FOR INSERT ແລະ FOR UPDATE Triggers
Triggers ປະເພດນໃຊເພອໃຫໜນໃຈວາຂມູນທຈະນາໄປເກບໃນແຕລະຖນມີ ື ັ ໍ ີ ໍ ັ ັ ີ້ ່ ້ ້ ່້ ້ ່ ່
ຄວາມຖກຕອງຕາມຂບງຄບທຸກປະການແລວຫບື ໍ ັ ັ ື ໍ້ ້້ ່ຼ .
ຮູບທີ 6.9 ສາງຕາຕະລາງທດສອບສາລບສາງ້ ້ົ ໍ ັ Triggers
Mr. Phonepaseuth PHONHDALA 18
ຮູບທີ 6.10 ສາງ້ Triggers ເພອກວດສອບແຖວຂມູນທຖກເພມື ໍ ີ ື ີ່ ້ ່ ່ ຫແກໄຂຼື ້
ຕອງໃຫ້ ້ ຖນັ qty >= 20
Mr. Phonepaseuth PHONHDALA 19
ຮູບທີ 6.11 ຜນການທບສອບົ ົ INSERT ແລະ UPDATE ຂມູນໍ້
Mr. Phonepaseuth PHONHDALA 20
ຮູບທີ 6.12 Triggers ຄວບຄຸມການ UPDATE ຂມູນໍ້
ເຮາສາມາດກວດສອບພຽງບາງຖນທຕອງການໄດໂດຍໃຊົ ັ ີ່ ້ ້ ້ IF UPDATE ເຊງເປນິ ັ່
ການກາໜດໃຫໍ ົ ້ Triggers ເຮດວຽກກຕເມອມການແກໄຂຖນທກາໜດໄວເທານນັ ໍ ໍ ື ີ ັ ີ ໍ ົ ົ ັ່ ່ ່ ່ ່ ້້ ້
Mr. Phonepaseuth PHONHDALA 21
FOR DELETE Triggers
ຮູບທີ 6.13 Triggers ສາລບກວດສອບການໍ ັ DELETE ຂມູນໍ້
ໃຊເພອກວດສອບຂມູນທຈະລບວາເປນໄປຕາມທກາໜດໄວ້ ່ ້ື ໍ ີ ຶ ັ ີ ໍ ົ່ ້ ່ ່ ຫບຼື ໍ່.
Mr. Phonepaseuth PHONHDALA 22
ຮູບທີ 6.14 ຜນການທດສອບົ ົ DELETE ຂມູນໍ້
Mr. Phonepaseuth PHONHDALA 23
6.4.2. ການເຮດັ CASCADING ດວຍ້ Triggers
ເມອມການລບຂມູນຈາກຕາຕະລາງຫກແລວື ີ ຶ ໍ ັ່ ້ ຼ ້ ແຖວຂມູນຂອງຕາຕະລາງທມຄໍ ີ ີ ີ້ ່
ນອກ( Foreign Key ) ເຊອມກບຄຫກື ັ ີ ັ່ ຼ ( Primary Key ) ຂອງຕາຕະລາງຫກຼັ
ຕອງຖກລບຖມນາ້ ື ຶ ິ ໍ້ .
ຕວຢາງົ ່ :
ສາງ້ 2 ຕາຕະລາງຄື tmp_orders ແລະ tmp_orderdetails ເພອໃຊໃນື່ ້
ການທດສອບົ
ຮູບທີ 6.15 ສາງຕາຕະລາງເພອໃຊໃນການທດສອບ້ ້ື ົ່
Mr. Phonepaseuth PHONHDALA 24
ຮູບທີ 6.17 ສາງ້ Triggers ສາລບໍ ັ tmp_orderdetails
ຮູບທີ 6.16 ສາງ້ Triggers ສາລບໍ ັ tmp_orders
Mr. Phonepaseuth PHONHDALA 25
ຮູບທີ 6.18 ຜນການທດສອບລບແຖວຂມູນົ ົ ຶ ໍ້
6.4.3. ການສາງ້ ແລະໃຊວຽກ້ INSTEAD OF Triggers
ຕໄປນຈະສະແດງໃຫເຫນວໍ ີ່ ້ ້ ່ັ າ ເມອມການື ີ່ INSERT ຂມູນຜານໍ້ ່ VIEW ຈະ
ເຮດໃຫັ ້ INSTAED OF INSERT Triggers ນາຂມູນທຖກໍ ໍ ີ ື້ ່ INSERT
ເຂາມານົ ີ້ ້ ໄປເພມແຖວຂມູນຢູຕາຕະລາງຕາງີ ໍ່ ້ ່ ່ ໆ ທນາມີ ໍ່ າ JOIN ກນັ
INSTEAD OF INSERT Triggers
Mr. Phonepaseuth PHONHDALA 26
ຮູບທີ 6.19 ສາເນາຕາຕະລາງເພອໃຊໃນການທດສອບໍ ົ ື ົ່ ້
ຮູບທີ 6.20 ສາງ້ VIEW ທມການີ ີ່ JION ຈາກ 3 ຕາຕະລາງ
Mr. Phonepaseuth PHONHDALA 27
ຮູບທີ 6.21 ສາງ້ INSTEAD OF INSERT TRIGGERS
Mr. Phonepaseuth PHONHDALA 28
ຮູບທີ 6.22 ຂມູນທໄດເມອມການເພມແຖວຂມູນຜານໍ ີ ື ີ ີ ໍ້ ່ ່ ່ ້້ ່ View
Mr. Phonepaseuth PHONHDALA 29
INSTEAD OF UPDATE Triggers
ຫາກມການີ UPDATE ຂມູນຜານໍ້ ່ View ຈະເຮດໃຫັ ້ INSTEAD OF
UPDATE Triggers ເຮດວຽກອບເດດຂມູນໄປຫາຕາຕະລາງຕາງັ ັ ໍ້ ່ ໆ
ຮູບທີ 6.23 ການສາງ້ INSTEAD OF UPDATE TRIGGERS
Mr. Phonepaseuth PHONHDALA 30
ຮູບທີ 6.24 ຂມູນທໄດເມອມການໍ ີ ື ີ້ ່ ່້ UPDATE ຂມູນຜານໍ້ ່ View
Mr. Phonepaseuth PHONHDALA 31
INSTEAD OF DELETE Triggers
ຮູບທີ 6.25 ສາງ້ INSTEAD OF DELETE Triggers
Mr. Phonepaseuth PHONHDALA 32
ຮູບທີ 6.26 ການ DELETE ຂມູນຜານໍ້ ່ View ແລະຂມູນຫງຈາກການລບໍ ັ ຶ້ ຼ
Mr. Phonepaseuth PHONHDALA 33
6.4.4. Nesting Triggers
ເປນການເອນໃຊັ ີ້ ້ Trigger ຕວອນຕໆໄປົ ື ໍ່ ່ ເຊງສາມາດເອນໄດເຖງິ ີ ິ່ ້ ້ 32 ລາດບໍ ັ
ຊນັ້ ຄກນກບື ັ ັ Stored procedures
ຕໄປນຈະສະແດງໃຫເຫນເຖງການເອນໃຊໍ ີ ິ ີ່ ້ ້້ ້ັ AFTER DELETE Triggers
ເພອລບຂມູນໃນແຕລະຕາຕະລາງທມຄວາມສາພນກນື ຶ ໍ ີ ີ ໍ ັ ັ່ ້ ່່ ເຊງມຂນຕອນດງນິ ີ ັ ັ ີ່ ້ ່ ້:
1. ສາງ້ AFTER DELETE Triggers ສາລບຕາຕະລາງໍ ັ tmp_titles ເພອສງລບຂື ັ ຶ ໍ່ ່ ້
ມູນໃນຕາຕະລາງ tmp_titleauthor
2. ສາງ້ AFTER DELETE Triggers ສາລບຕາຕະລາງໍ ັ tmp_titleauthor ເພອສງື ັ່ ່
ລບຂມູນໃນຕາຕະລາງຶ ໍ້ tmp_author
3. ລບຂມູນໃນຕາຕະລາງຶ ໍ້ tmp_title ດງຮູບທັ ີ່ 6.28 ຈະເຮດໃຫການເອນໃຊັ ີ້ ້້ Triggers
ຕໆກນໍ ັ່
Mr. Phonepaseuth PHONHDALA 34
ຮູບທີ 6.27 ການສາງ້ AFTER DELETE Triggers ສາລບໍ ັ tmp_title
ແລະ tmp_titleauthor
Mr. Phonepaseuth PHONHDALA 35
ຮູບທີ 6.28 ເພມແຖວຂມູນຕວຢາງເຂາໃນວວີ ໍ ົ ົ ິ່ ້ ້່ vw_titleauthor
ຮູບທີ 6.29 ຜນໄດຮບຈາກການເຮດວຽກຂອງົ ັ ັ້ Nesting Triggers

More Related Content

More from Phonepaseuth Phonhdala

Lab 15 ການດຶງຂໍ້ມູນຈາກ Firebase ມາສະແດງໃນໜ້າແອ໋ບ
Lab 15 ການດຶງຂໍ້ມູນຈາກ Firebase ມາສະແດງໃນໜ້າແອ໋ບLab 15 ການດຶງຂໍ້ມູນຈາກ Firebase ມາສະແດງໃນໜ້າແອ໋ບ
Lab 15 ການດຶງຂໍ້ມູນຈາກ Firebase ມາສະແດງໃນໜ້າແອ໋ບPhonepaseuth Phonhdala
 
Lab 14 Storage ແລະ Database ໃນ Firebase
Lab 14 Storage ແລະ Database ໃນ FirebaseLab 14 Storage ແລະ Database ໃນ Firebase
Lab 14 Storage ແລະ Database ໃນ FirebasePhonepaseuth Phonhdala
 
Lab 13 ການລົບມູນແຫຼມ EditText, Button ແລະການເລືອກຮູບ
Lab 13 ການລົບມູນແຫຼມ EditText, Button ແລະການເລືອກຮູບLab 13 ການລົບມູນແຫຼມ EditText, Button ແລະການເລືອກຮູບ
Lab 13 ການລົບມູນແຫຼມ EditText, Button ແລະການເລືອກຮູບPhonepaseuth Phonhdala
 
ການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນ
ການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນ
ການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນPhonepaseuth Phonhdala
 
ການກະກຽມຂໍ້ມູນ (Prepare data)
ການກະກຽມຂໍ້ມູນ (Prepare data)ການກະກຽມຂໍ້ມູນ (Prepare data)
ການກະກຽມຂໍ້ມູນ (Prepare data)Phonepaseuth Phonhdala
 
ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ
ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ
ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ Phonepaseuth Phonhdala
 
ພາກປະຕິບັດ 8 (Lab 8)
ພາກປະຕິບັດ 8 (Lab 8)ພາກປະຕິບັດ 8 (Lab 8)
ພາກປະຕິບັດ 8 (Lab 8)Phonepaseuth Phonhdala
 
ພາກປະຕິບັດ 7 (Lab 7)
ພາກປະຕິບັດ 7 (Lab 7)ພາກປະຕິບັດ 7 (Lab 7)
ພາກປະຕິບັດ 7 (Lab 7)Phonepaseuth Phonhdala
 
ພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBox
ພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBoxພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBox
ພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBoxPhonepaseuth Phonhdala
 
ພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButton
ພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButtonພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButton
ພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButtonPhonepaseuth Phonhdala
 
ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່
ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່
ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່Phonepaseuth Phonhdala
 
ຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipse
ຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipseຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipse
ຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipsePhonepaseuth Phonhdala
 

More from Phonepaseuth Phonhdala (20)

Lab 15 ການດຶງຂໍ້ມູນຈາກ Firebase ມາສະແດງໃນໜ້າແອ໋ບ
Lab 15 ການດຶງຂໍ້ມູນຈາກ Firebase ມາສະແດງໃນໜ້າແອ໋ບLab 15 ການດຶງຂໍ້ມູນຈາກ Firebase ມາສະແດງໃນໜ້າແອ໋ບ
Lab 15 ການດຶງຂໍ້ມູນຈາກ Firebase ມາສະແດງໃນໜ້າແອ໋ບ
 
Lab 14 Storage ແລະ Database ໃນ Firebase
Lab 14 Storage ແລະ Database ໃນ FirebaseLab 14 Storage ແລະ Database ໃນ Firebase
Lab 14 Storage ແລະ Database ໃນ Firebase
 
Lab 13 ການລົບມູນແຫຼມ EditText, Button ແລະການເລືອກຮູບ
Lab 13 ການລົບມູນແຫຼມ EditText, Button ແລະການເລືອກຮູບLab 13 ການລົບມູນແຫຼມ EditText, Button ແລະການເລືອກຮູບ
Lab 13 ການລົບມູນແຫຼມ EditText, Button ແລະການເລືອກຮູບ
 
Lab 12 Firebase Authentication
Lab 12 Firebase AuthenticationLab 12 Firebase Authentication
Lab 12 Firebase Authentication
 
Lab 11 qr and bar code
Lab 11 qr and bar codeLab 11 qr and bar code
Lab 11 qr and bar code
 
Lab 10 gride view
Lab 10 gride viewLab 10 gride view
Lab 10 gride view
 
Lab 9 list view
Lab 9 list viewLab 9 list view
Lab 9 list view
 
Lab 3 date picker dialog
Lab 3 date picker dialogLab 3 date picker dialog
Lab 3 date picker dialog
 
Lab 2 time picker dialog
Lab 2 time picker dialogLab 2 time picker dialog
Lab 2 time picker dialog
 
ການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນ
ການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນ
ການເພີ່ມ, ແກ້ໄຂ, ລຶບ ຂໍ້ມູນ
 
ການກະກຽມຂໍ້ມູນ (Prepare data)
ການກະກຽມຂໍ້ມູນ (Prepare data)ການກະກຽມຂໍ້ມູນ (Prepare data)
ການກະກຽມຂໍ້ມູນ (Prepare data)
 
ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ
ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ
ພາກປະຕິບັດ 9 (Lab 9) ຈັດການຖານຂໍ້ມູນ
 
ພາກປະຕິບັດ 8 (Lab 8)
ພາກປະຕິບັດ 8 (Lab 8)ພາກປະຕິບັດ 8 (Lab 8)
ພາກປະຕິບັດ 8 (Lab 8)
 
ພາກປະຕິບັດ 7 (Lab 7)
ພາກປະຕິບັດ 7 (Lab 7)ພາກປະຕິບັດ 7 (Lab 7)
ພາກປະຕິບັດ 7 (Lab 7)
 
ພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBox
ພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBoxພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBox
ພາກປະຕິບັດ 6 (Lab 6) ການໃຊ້ CheckBox
 
ພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButton
ພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButtonພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButton
ພາກປະຕິບັດ 5 (Lab 5) ການນຳໃຊ້ RadioButton
 
Chapter2
Chapter2Chapter2
Chapter2
 
Chapter1
Chapter1Chapter1
Chapter1
 
ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່
ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່
ພາກປະຕິບັດ 4 (Lab 4) ການເປິດActivity ໃໝ່
 
ຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipse
ຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipseຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipse
ຕິດຕັ້ງ Tomcat (xampp) ໃນ eclipse
 

Chapter6

  • 1. Mr. Phonepaseuth PHONHDALA 1 SQL Server 2000 ພາກທີ 6 ການສາງ້ ແລະການໃຊວຽກ້ Trigger
  • 2. Mr. Phonepaseuth PHONHDALA 2 6.1. ນາສະເໜກຽວກບໍ ີ ັ່ Triggers ເມອໃດກຕາມທຂມູນມການປຽນແປງເກດຂນື ໍ ີ ໍ ີ ີ ື່ ່ ່ ້ ້່ ເຮາສາມາດກາໜດໃຫົ ໍ ົ ້ Triggers ກວດສອບຄວາມຖກຕອງຂອງຂມູນື ໍ້ ້ 6.1.1. ຈຸດດຂອງີ ແລະຂຈາກດຂອງໍ ໍ ັ້ Triggers ແລະຍງສາມາດກາໜດຄາສງໃຫສາມາດກວດສອບຖນັ ໍ ົ ໍ ັ ັ່ ້ ຫຂມູນທຢູຂາມຕາຕຼື ໍ ີ້ ່ ່ ້ ະ ລາງກນໄດັ ້ ແຕການໃຊວຽກຂອງ່ ້ Triggers ຍງມຂຈາກດທຄວນພຈາລະນາດງຕໄປນັ ີ ໍ ໍ ັ ີ ິ ັ ໍ ີ້ ່ ່ ່ ້: 1. ບສາມາດສາງໄດໃນຕາຕະລາງຊວຄາວໍ ົ່ ່້ ້ (Temporary Table) ແຕເຮດໄດພຽງ່ ້ັ ການອາງອງເຖງເທານນ້ ີ ິ ົ ັ່ ້ . 2. ບສາມາດສງຂມູນກບມາເປນຣຄອດເຊດໍ ົ ໍ ັ ັ ີ ັ່ ່ ້ ( Record set ) ໄດ້ 3. ຄວນໃຊ້ Triggers ໃນເລອງຂອງການດູແລຂມູນໃຫຖກຕອງື ໍ ື່ ້ ້ ້
  • 3. Mr. Phonepaseuth PHONHDALA 3 4. ການໃຊຄເວດ້ ີ ີ WRITETEXT ໃນການແກໄຂປະເພດຂມູນຊະນດ້ ໍ ິ້ text ແລະ image ນອກຈາກຈະບມການຂຽນໂອເປເຣເຊນລງສູທຣານເຊກເຊນລອກແລວໍ ີ ີ ີ ົ ັ ີ ັ່ ່ ້ ຍງັ ບເປນການປຸກໃຫໍ ັ່ ້ Triggers ມການເຮດວຽກເກດຂນີ ັ ີ ື້ 5. ຄາສງຕາງໆທບສາມາດໃຊພາຍໃນໍ ັ ີ ໍ່ ່ ່່ ້ ໄດມດງນ້ ີ ັ ີ່ ້: ALTER DATABASE CREATE DATABASE DISK INIT DROP DATABASE LOAD DATABASE DISK REZISE RESTORE DATABASE RECONFIGURE LOAD LOG RESTORE LOG 6.1.2. ມາຮູຈກກບຕາຕະລາງ້ ັ ັ Inserted ແລະ Deleted ເມອມການເຮດວຽກຮວມື ີ ັ່ ່ Triggers ຈະເກດຕາຕະລາງພເສດຂນີ ິ ຶ້ 2 ຕາຕະລາງ ຄື: Inserted ແລະ Deleted ໂດຍເກບໄວຢູໜວຍຄວາມຈາັ ໍ້ ່ ່ ແລະຈະໃຊວຽກໄດ້ ້ ພຽງພາຍໃນໃນຊວງໄລຍະເວລາການເຮດວຽກຂອງ່ ັ Triggers ໜງຶ່ ໆ ເທານນົ ັ່ ້
  • 4. Mr. Phonepaseuth PHONHDALA 4 ໃນແຕລະເທອຂອງການເກດເຫດການທກຽວຂອງກບການປຽນແປງ່ ່ ້ ່ື ີ ີ ັ່ ່ ແກໄຂຂມູນ້ ໍ້ ຈະເປນເຫດໃຫມການເພມຂມູນໃຫກບຕາຕະລາງພເສດດງນັ ີ ີ ໍ ັ ິ ັ ີ້ ້່ ້ ່ ້: INSERT DELETE UPDATE 6.2. ປະເພດຂອງ Triggers 6.2.1. FOR Triggers ຫຼື AFTER Triggers ເມອແບງຕາມລກຊະນະການໃຊວຽກແລວື ັ່ ່ ້ ້ Triggers ສາມາດແບງອອກເປນ່ ັ 2 ປະເພດຄື: AFTER Triggers ແລະ INSTEAD OF Triggers ເປນັ Triggers ເຊງຈະເຮດວຽກພາຍຫງທມຄາສງິ ັ ັ ີ ີ ໍ ັ່ ່ ່ຼ Transaction-SQL ທກຽວີ່ ່ ຂອງກບກນປຽນແປງຂມູນ້ ່ັ ໍ້ ( INSERT, DELETE ແລະ UPDATE ) ສາເລດໍ ັ ແລວ້
  • 5. Mr. Phonepaseuth PHONHDALA 5 1. ເຮດຄາສງັ ໍ ັ່ Transaction-SQL ( INSERT, DELETE ແລະ UPDATE ) ກບຕາຕະລາງທຕອງການັ ີ່ ້ ຂນຕອນການເຮດວຽກຂອງັ ັ້ FOR Triggers 2. ທຕາຕະລາງມການກວດສອບຄວາມຖກຕອງຂອງຂມູນດວຍີ ີ ື ໍ່ ້້ ້ Constraint ຕາງ່ ໆ 3. ລະບບສາງຕາຕະລາງົ ້ Inserted ແລະ Deleted 4. ເລມການເຮດວຽກຂອງີ ັ່ FOR ຫຼື AFTER Triggers 6.2.2. INSTEAD OF Triggers ຈະເຮດວຽກກອນການເຮດຄາສງັ ັ ໍ ັ່ ່ Transact-SQL ທກຽວຂອງກບການປຽນແປງີ ັ່ ່ ້ ່ ຂມູນໍ້ ຊວຍເຮດໃຫສາມາດສາງ່ ້ ້ັ Triggers ເພອເຮດວຽກຮວມກບື ັ ັ່ ່ View ໄດ້ 1. ເຮດຄາສງັ ໍ ັ່ Transaction-SQL ( INSERT, DELETE ແລະ UPDATE ) ກບຕາຕະລາງັ ຫຼື ວວິ ທຕອງການີ່ ້ ຂນຕອນການເຮດວຽກຂອງັ ັ້ INSTEAD OF Triggers
  • 6. Mr. Phonepaseuth PHONHDALA 6 4. ທຕາຕະລາງມການກວດສອບຄວາມຖກຕອງຂອງຂມູນດວຍີ ີ ື ໍ່ ້້ ້ Constraint ຕາງ່ ໆ ຫາກ Triggers ມການໃຊຄາສງີ ໍ ັ້ ່ Transaction-SQL ( INSERT, DELETE ແລະ UPDATE ) ກບຕາຕະລາງນນັ ັ້ ໆ 2. ລະບບສາງຕາຕະລາງົ ້ Inserted ແລະ Deleted 3. ເລມການເຮດວຽກຂອງີ ັ່ INSTEAD OF Triggers ຂແຕກຕາງລະຫວາງໍ້ ່ ່ FOR Triggers ແລະ INSTEAD OF Triggers ຟງເຊນັ ີ FOR | AFTER Triggers INSTEAD OF Triggers ໃຊວຽກໄດກບ້ ້ ັ ຈານວນໍ Triggers ຕຕາຕໍ່ ະ ລາງ ຫຼື ວວິ ຕາຕະລາງຢາງດຽວເທານນ່ ົ ັ່ ້ ທງັ ຕາຕະລາງ ແລະ ວວິ ສາມາດສາງ້ Triggers ໄດຫາຍໆຕວ້ ຼ ົ ເພອເຮດວຽກສາລບຄາສງື ັ ໍ ັ ໍ ັ່ ່ INSERT, DELETE ແລະ UPDATE ມໄດພຽງີ ້ 1 Triggers ຕຄາສງໍ ໍ ັ່ ່ INSERT, DELETE ແລະ UPDATE
  • 7. Mr. Phonepaseuth PHONHDALA 7 ຟງເຊນັ ີ FOR | AFTER Triggers INSTEAD OF Triggers ການໃຊວຽກຮວມກບ້ ່ ັ Cascading References ການກາໜດລາດບໃນການໍ ົ ໍ ັ ເຮດວຽກັ ໃນກລະນທມຫາຍໍ ີ ີ ີ່ ຼ ໆ Triggers ເຮດັ ວຽກຮວມກນ່ ັ ສາມາດກາໜດລາດບໍ ົ ໍ ັ ການເຮດວຽກສາລບັ ໍ ັ Triggers ຕວທາົ ໍ ອດິ ແລະຕວສຸດທາຍໄດົ ້ ້ ບຈາເປນຕອງການດລາດບການເຮດວຽກໍ ໍ ັ ໍ ົ ໍ ັ ັ່ ້ ເນອງຈາກມພຽງື ີ່ 1 Triggers ຕຄາສງໍ ໍ ັ່ ່ INSERT, DELETE ແລະ UPDATE ເທານນົ ັ່ ້ . ປະເພດຂມູນສາລບຖນແບບໍ ໍ ັ ັ້ text, ntext ແລະ image ເຊງຖກອາງອງໃນຕາຕະລາງິ ື ີ່ ້ Inserted ແລະ Deleted ບມຂຈາກດໍ ີ ໍ ໍ ັ່ ້ ບອານຸຍາດໃຫໃຊວຽກຮວມກບຕາຕະລາງໍ ັ່ ້ ້ ່ ທມການຄວບຄຸມຄວາມຖກຕອງຂອງຂມູນີ ີ ື ໍ່ ້້ ໂດຍໃຊ້ Cascading Referential Integrity ບອານຸຍາດໍ່ ອານຸຍາດ ຕາຕະລາງທີ 6.1 ຂແຕກຕາງລະຫວາງໍ້ ່ ່ FOR Triggers ແລະ INSTEAD OF Triggers
  • 8. Mr. Phonepaseuth PHONHDALA 8 6.3.6.3. ການສາງ້ການສາງ້ ແແລະຈດການັລະຈດການັ TriggersTriggers ດວຍ້ດວຍ້ TransactTransact--SQLSQL 6.3.1. ການສາງ້ Triggers ມຮູບແບບດງນີ ັ ີ່ ້: CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] { { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS [ { IF UPDATE ( column ) [ { AND | OR } UPDATE ( column ) ] [ ...n ] | IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask ) { comparison_operator } column_bitmask [ ...n ] } ] sql_statement [ ...n ] } }
  • 9. Mr. Phonepaseuth PHONHDALA 9 ຮູບທີ 6.1 ການສາງ້ Triggers ທຊີ ື່ ່ tr_ModifyCustomers ການສາງ້ Triggers ເພອສງຂຄວາມແຈງເຕອນື ົ ໍ ື່ ່ ້ ້ ເມອມການເພມແຖວື ີ ີ່ ່ ຫແກຼື ້ ໄຂຂມູນເກດຂນໍ ີ ຶ້ ້
  • 10. Mr. Phonepaseuth PHONHDALA 10 6.3.2. ການກວດສອບຂມູນໍ້ Triggers ຮູບທີ 6.2 ການໃຊຄາສງເພອກວດສອບຂມູນ້ ໍ ັ ື ໍ່ ່ ້ Triggers
  • 11. Mr. Phonepaseuth PHONHDALA 11 6.3.3. ການແກໄຂ້ Triggers ຮູບທີ 6.3 ການແກໄຂ້ Triggers ການສາງ້ Triggers ໂດຍການກາໜດອອບເຊນໍ ົ ີ WITH ENCRIPTION ຈະບສາມາດໃຊໍ່ ້ sp_helptext ຫຼື Enterprise Manager ເພອກວດສອບລາຍລື່ ະ ອຽດຂອງຄາສງພາຍໃນໄດໍ ັ່ ້. ໝາຍເຫດ:
  • 12. Mr. Phonepaseuth PHONHDALA 12 6.3.4. ການ Enable ແລະ Disable ການເຮດວຽກຂອງັ Triggers ມຮູບແບບດງນີ ັ ີ່ ້: ALTER TABLE table_name [ENABLE | DISABLE] TRIGGER [ALL | trigger_name ] ຮູບທີ 6.4 ການ DISABLE ແລະ ENABLE Triggers
  • 13. Mr. Phonepaseuth PHONHDALA 13 6.3.5. ການປຽນຊ່ ື່ Triggers ຮູບທີ 6.5 ການປຽນຊ່ ື່ Triggers 6.3.6. ການຈດລາດບການເຮດວຽກສາລບັ ໍ ັ ັ ໍ ັ Triggers sp_settriggerorder[@triggername = ] 'triggername ', [@order = ] 'value ', [@stmttype = ] 'statement_type ' ມຮູບແບບດງນີ ັ ີ່ ້:
  • 14. Mr. Phonepaseuth PHONHDALA 14 ຮູບທີ 6.6 ການຈດລາດບການເຮດວຽກສາລບັ ໍ ັ ັ ໍ ັ Triggers ສາມາດກາໜດໄດພຽງລາດບທາອດໍ ົ ໍ ັ ໍ ິ້ ແລະລາດບສຸດທາຍເທານນໍ ັ ົ ັ້ ່ ້ , ສວນທເຫອ່ ີ ື່ ຼ ຍງເປນລກສະນະການສຸມການເຮດວຽກຕາມປກກະຕັ ັ ັ ັ ົ ິ່ ຂຈາກດໃນການຈດລາດບການເຮດວຽກໍ ໍ ັ ັ ໍ ັ ັ້ :
  • 15. Mr. Phonepaseuth PHONHDALA 15 6.3.7. ການລບຶ Triggers ຮູບທີ 6.7 ການລບຶ Triggers ມຮູບແບບດງນີ ັ ີ່ ້: DROP TRIGGER { trigger } [ ,...n ] ເນອງຈາກື່ Triggers ເປນອອບເຈກທຖກສາງໃຫຢດຕດກບຕາຕະລາງຂມູນັ ັ ີ ື ຶ ິ ັ ໍ່ ້້ ້ ດງັ່ ນນັ້ ຫາກມການລບຕາຕະລາງນນີ ຶ ັ້ ໆ ຈະເຮດໃຫັ ້ Triggers ທອາໄສຢູຖກລບໄປນາີ ື ຶ ໍ່ ່ ໝາຍເຫດ:
  • 16. Mr. Phonepaseuth PHONHDALA 16 6.4.6.4. ການສາງ້ການສາງ້ ແແລະຈດການັລະຈດການັ TriggersTriggers ດວຍ້ດວຍ້ EnterpriseEnterprise ManagerManager 1. ກດເມາສຂວາໃສຕາຕະລາງທຕອງການສາງົ ົ ີ໌ ່ ້ ້່ Triggers 2. ເລອກລາຍການື All Tasks > Manager Triggers… ຮູບທີ 6.8 ໄດອະລອກບອກສາລບສາງັ ັ ໍ ັ ້ Triggers
  • 17. Mr. Phonepaseuth PHONHDALA 17 6.4.1. ການຄວບຄຸມ Data Integrity ດວຍ້ Triggers ເປນການນາັ ໍ Triggers ໄປຄວບຄຸມຄວາມຖກຕອງຂອງຂມູນື ໍ້ ້ ດງປະເພດຂອງັ່ Triggers ຕໄປນໍ ີ່ ້: FOR INSERT ແລະ FOR UPDATE Triggers Triggers ປະເພດນໃຊເພອໃຫໜນໃຈວາຂມູນທຈະນາໄປເກບໃນແຕລະຖນມີ ື ັ ໍ ີ ໍ ັ ັ ີ້ ່ ້ ້ ່້ ້ ່ ່ ຄວາມຖກຕອງຕາມຂບງຄບທຸກປະການແລວຫບື ໍ ັ ັ ື ໍ້ ້້ ່ຼ . ຮູບທີ 6.9 ສາງຕາຕະລາງທດສອບສາລບສາງ້ ້ົ ໍ ັ Triggers
  • 18. Mr. Phonepaseuth PHONHDALA 18 ຮູບທີ 6.10 ສາງ້ Triggers ເພອກວດສອບແຖວຂມູນທຖກເພມື ໍ ີ ື ີ່ ້ ່ ່ ຫແກໄຂຼື ້ ຕອງໃຫ້ ້ ຖນັ qty >= 20
  • 19. Mr. Phonepaseuth PHONHDALA 19 ຮູບທີ 6.11 ຜນການທບສອບົ ົ INSERT ແລະ UPDATE ຂມູນໍ້
  • 20. Mr. Phonepaseuth PHONHDALA 20 ຮູບທີ 6.12 Triggers ຄວບຄຸມການ UPDATE ຂມູນໍ້ ເຮາສາມາດກວດສອບພຽງບາງຖນທຕອງການໄດໂດຍໃຊົ ັ ີ່ ້ ້ ້ IF UPDATE ເຊງເປນິ ັ່ ການກາໜດໃຫໍ ົ ້ Triggers ເຮດວຽກກຕເມອມການແກໄຂຖນທກາໜດໄວເທານນັ ໍ ໍ ື ີ ັ ີ ໍ ົ ົ ັ່ ່ ່ ່ ່ ້້ ້
  • 21. Mr. Phonepaseuth PHONHDALA 21 FOR DELETE Triggers ຮູບທີ 6.13 Triggers ສາລບກວດສອບການໍ ັ DELETE ຂມູນໍ້ ໃຊເພອກວດສອບຂມູນທຈະລບວາເປນໄປຕາມທກາໜດໄວ້ ່ ້ື ໍ ີ ຶ ັ ີ ໍ ົ່ ້ ່ ່ ຫບຼື ໍ່.
  • 22. Mr. Phonepaseuth PHONHDALA 22 ຮູບທີ 6.14 ຜນການທດສອບົ ົ DELETE ຂມູນໍ້
  • 23. Mr. Phonepaseuth PHONHDALA 23 6.4.2. ການເຮດັ CASCADING ດວຍ້ Triggers ເມອມການລບຂມູນຈາກຕາຕະລາງຫກແລວື ີ ຶ ໍ ັ່ ້ ຼ ້ ແຖວຂມູນຂອງຕາຕະລາງທມຄໍ ີ ີ ີ້ ່ ນອກ( Foreign Key ) ເຊອມກບຄຫກື ັ ີ ັ່ ຼ ( Primary Key ) ຂອງຕາຕະລາງຫກຼັ ຕອງຖກລບຖມນາ້ ື ຶ ິ ໍ້ . ຕວຢາງົ ່ : ສາງ້ 2 ຕາຕະລາງຄື tmp_orders ແລະ tmp_orderdetails ເພອໃຊໃນື່ ້ ການທດສອບົ ຮູບທີ 6.15 ສາງຕາຕະລາງເພອໃຊໃນການທດສອບ້ ້ື ົ່
  • 24. Mr. Phonepaseuth PHONHDALA 24 ຮູບທີ 6.17 ສາງ້ Triggers ສາລບໍ ັ tmp_orderdetails ຮູບທີ 6.16 ສາງ້ Triggers ສາລບໍ ັ tmp_orders
  • 25. Mr. Phonepaseuth PHONHDALA 25 ຮູບທີ 6.18 ຜນການທດສອບລບແຖວຂມູນົ ົ ຶ ໍ້ 6.4.3. ການສາງ້ ແລະໃຊວຽກ້ INSTEAD OF Triggers ຕໄປນຈະສະແດງໃຫເຫນວໍ ີ່ ້ ້ ່ັ າ ເມອມການື ີ່ INSERT ຂມູນຜານໍ້ ່ VIEW ຈະ ເຮດໃຫັ ້ INSTAED OF INSERT Triggers ນາຂມູນທຖກໍ ໍ ີ ື້ ່ INSERT ເຂາມານົ ີ້ ້ ໄປເພມແຖວຂມູນຢູຕາຕະລາງຕາງີ ໍ່ ້ ່ ່ ໆ ທນາມີ ໍ່ າ JOIN ກນັ INSTEAD OF INSERT Triggers
  • 26. Mr. Phonepaseuth PHONHDALA 26 ຮູບທີ 6.19 ສາເນາຕາຕະລາງເພອໃຊໃນການທດສອບໍ ົ ື ົ່ ້ ຮູບທີ 6.20 ສາງ້ VIEW ທມການີ ີ່ JION ຈາກ 3 ຕາຕະລາງ
  • 27. Mr. Phonepaseuth PHONHDALA 27 ຮູບທີ 6.21 ສາງ້ INSTEAD OF INSERT TRIGGERS
  • 28. Mr. Phonepaseuth PHONHDALA 28 ຮູບທີ 6.22 ຂມູນທໄດເມອມການເພມແຖວຂມູນຜານໍ ີ ື ີ ີ ໍ້ ່ ່ ່ ້້ ່ View
  • 29. Mr. Phonepaseuth PHONHDALA 29 INSTEAD OF UPDATE Triggers ຫາກມການີ UPDATE ຂມູນຜານໍ້ ່ View ຈະເຮດໃຫັ ້ INSTEAD OF UPDATE Triggers ເຮດວຽກອບເດດຂມູນໄປຫາຕາຕະລາງຕາງັ ັ ໍ້ ່ ໆ ຮູບທີ 6.23 ການສາງ້ INSTEAD OF UPDATE TRIGGERS
  • 30. Mr. Phonepaseuth PHONHDALA 30 ຮູບທີ 6.24 ຂມູນທໄດເມອມການໍ ີ ື ີ້ ່ ່້ UPDATE ຂມູນຜານໍ້ ່ View
  • 31. Mr. Phonepaseuth PHONHDALA 31 INSTEAD OF DELETE Triggers ຮູບທີ 6.25 ສາງ້ INSTEAD OF DELETE Triggers
  • 32. Mr. Phonepaseuth PHONHDALA 32 ຮູບທີ 6.26 ການ DELETE ຂມູນຜານໍ້ ່ View ແລະຂມູນຫງຈາກການລບໍ ັ ຶ້ ຼ
  • 33. Mr. Phonepaseuth PHONHDALA 33 6.4.4. Nesting Triggers ເປນການເອນໃຊັ ີ້ ້ Trigger ຕວອນຕໆໄປົ ື ໍ່ ່ ເຊງສາມາດເອນໄດເຖງິ ີ ິ່ ້ ້ 32 ລາດບໍ ັ ຊນັ້ ຄກນກບື ັ ັ Stored procedures ຕໄປນຈະສະແດງໃຫເຫນເຖງການເອນໃຊໍ ີ ິ ີ່ ້ ້້ ້ັ AFTER DELETE Triggers ເພອລບຂມູນໃນແຕລະຕາຕະລາງທມຄວາມສາພນກນື ຶ ໍ ີ ີ ໍ ັ ັ່ ້ ່່ ເຊງມຂນຕອນດງນິ ີ ັ ັ ີ່ ້ ່ ້: 1. ສາງ້ AFTER DELETE Triggers ສາລບຕາຕະລາງໍ ັ tmp_titles ເພອສງລບຂື ັ ຶ ໍ່ ່ ້ ມູນໃນຕາຕະລາງ tmp_titleauthor 2. ສາງ້ AFTER DELETE Triggers ສາລບຕາຕະລາງໍ ັ tmp_titleauthor ເພອສງື ັ່ ່ ລບຂມູນໃນຕາຕະລາງຶ ໍ້ tmp_author 3. ລບຂມູນໃນຕາຕະລາງຶ ໍ້ tmp_title ດງຮູບທັ ີ່ 6.28 ຈະເຮດໃຫການເອນໃຊັ ີ້ ້້ Triggers ຕໆກນໍ ັ່
  • 34. Mr. Phonepaseuth PHONHDALA 34 ຮູບທີ 6.27 ການສາງ້ AFTER DELETE Triggers ສາລບໍ ັ tmp_title ແລະ tmp_titleauthor
  • 35. Mr. Phonepaseuth PHONHDALA 35 ຮູບທີ 6.28 ເພມແຖວຂມູນຕວຢາງເຂາໃນວວີ ໍ ົ ົ ິ່ ້ ້່ vw_titleauthor ຮູບທີ 6.29 ຜນໄດຮບຈາກການເຮດວຽກຂອງົ ັ ັ້ Nesting Triggers