Pa napatio si se zbog trigera koji su formirani sa pogresnom pretpostavkom da inserted/updated tabele mogu imati samo jedan red pa se prave konstrukcije koje se svode na WHERE nesto = select drugo from inserted sto neminovno vodi ka gresci koju dobijas. Kad se prave trigeri da valjaju prave se tako da rade i u batch mode-u sto znaci da bi za ovaj primer triger trebao da bude npr ovakav (ili nesto slicno):
delete from Racuni
where Id in (Select ID from inserted)
ili
delete from Racuni
inner join inserted on inserted.Id = Racuni.Id
i sa ovakvim trigerom nikad neces dobiti "more than 1 records" gresku.
za 2.2, jasno mi je odakle dolazis (sa stanovista poslovne logike), ali ako gledamo ovo striktno sa SQL stanovista svejedno je. Kako god da obrnes morace da se desi oba, cak iako se triger poziva iz implicitne transakcije posto SQL nece okinuti AFTER trigger ako operacija koja ga izaziva ne zavrsi svoj posao. Efektivno triger radi u istoj transakciji kao operacija (sto je jedan od razloga zasto ne bi trebalo koristiti triger da rollbackujes operaciju)
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić