Ada kejanggalan pada trigger di SQL Server. bener gak sih ?.
bandingkan trigger sql server dengan ASA.
mudah-mudahan saya yang salah....atau memang ada settingan khusus di sqlserver. 
tapi saya udah otak atik...putar puter,puyeng !!!, jalankan perintah ini itu, 
tapi hasilnya nihil (kalo dunia program baca: null).
ada apa dengan trigger sql server!!!. mudah-mudahan dugaan saya salah. 

Contoh sederhana:

table coba dengan kolom dan data sbb:

cobaid             parentid                 ket
1                    0                           <null>
2                    1                           <null>
3                    2                           <null>
4                    3                           <null>
5                    4                           <null>
6                    5                           <null>
7                    6                           <null>


1. saya membuat triger delete di sqlserver sbb :


CREATE TRIGGER trig_coba_delete ON coba 
AFTER DELETE 
AS
    begin
        delete from coba from deleted
        where coba.parentid = deleted.cobaid    
    end

catatan: kalo saya delete cobaidnya 1 harusnya semuanya terhapus kan????, 
   tapi kenapa cuma 1 dan 2 aja yang terhapus....secara logika harusnya    
semuanya terhapus  

bandingkan dengan ASA sbb :

CREATE TRIGGER "tda_coba" AFTER DELETE
ORDER 1 ON "DBA"."coba"
REFERENCING OLD AS old_name 
FOR EACH ROW 
BEGIN
    delete from coba where parentid = old_name.cobaid
END

catatan: kalo saya delete cobaidnya 1 ....benar..... semuanya akan terhapus. 



2. Saya membuat trigger update

CREATE TRIGGER trig_coba_update ON dbo.coba 
AFTER UPDATE
AS
    begin

        update coba
        set coba.ket = inserted.ket 
        rom inserted   
        where coba.parentid = inserted.cobaid
        end

catatan: kalo saya edit kolom ket dengan "TES" pada cobaid 1, maka secara 
logika seharusnya semua ket bernilai "TES" tapi
di sql server yang terisi "TES" cuma pada cobaid 1 dan 2 saja  

bandingkan dengan ASA :

ALTER TRIGGER "tua_coba" AFTER UPDATE
ORDER 1 ON "DBA"."coba"
REFERENCING OLD AS old_name NEW AS new_name 
FOR EACH ROW 
BEGIN
    update coba
        set coba.ket = new_name.ket
        where coba.parentid = new_name.cobaid;
END

catatan: kalo saya edit kolom ket dengan "TES" pada cobaid 1 maka semua row ket 
bernilai "TES" .....benar....

ada apa dengan trigger sql server. knapa triggernya tidak meng-trigger lagi 
selama ada perubahan data ?

       
---------------------------------
Ahhh...imagining that irresistible "new car" smell?
 Check outnew cars at Yahoo! Autos.

Kirim email ke