SQL Server trigger

poruka: 3
|
čitano: 1.258
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
SQL Server trigger

Može mi netko pomoći oko triggera koji bi trebao nakon što ja upišem id osobe u jednu tablicu provjeriti u drugoj tablici da li ta osoba  ima plačenu članarinu i ako ima da mi baci poruku da članarina vrijedi (da je plačena) ili da mi baci poruku da nije članarina plačena .

 

U postgresql sam uspio napraviti (ne baš kako sam htio, no može proći), no u T-SQL je drugacija sintaksa i baš se nesnalazim.

 

CREATE FUNCTION evidencija () RETURNS TRIGGER AS $$

DECLARE status varchar(2);

BEGIN

 

SELECT placeno INTO status

FROM clanarina,clanovi,evidencija

WHERE clanarina.sifra=clanovi.clanarina

AND clanovi.clan_id=new.clan;

 

IF status LIKE 'da' THEN

RAISE NOTICE 'Plačena članarina: % ',status;

return new;

ELSE

RAISE exception 'Plačena članarina: %',status;

 

END IF;

END;

$$ LANGUAGE plpgsql;

 

CREATE TRIGGER evidentiranje

AFTER INSERT ON evidencija

FOR EACH ROW EXECUTE PROCEDURE evidencija();

 

 

Sex is like Nokia (connecting people), like Nike (just do it), like Pepsi (ask for more) and like Samsung ( everyone is invited)
 
0 0 hvala 0
12 godina
neaktivan
offline
Re: SQL Server trigger

Kolik znam u SQL serveru ne možeš selektivno prihvaćati/odbacivati unutar istog inserta - ili prolaze svi, ili nijedan. Ako je to prihvatljivo onda evo triggera koji pukne ako neki od novih redaka nema plaćenu članarinu:

CREATE TRIGGER evidentiranje
ON evidencija
AFTER INSERT
AS
    IF EXISTS(SELECT *
              FROM inserted
              WHERE NOT EXISTS(SELECT *
                               FROM clanarina
                                   JOIN clanovi ON clanarina.sifra = clanovi.clanarina
                               WHERE clanarina.clan_id = inserted.clan AND
                                   clanarina.placeno = 'da'
                              )
             )
    BEGIN
        RAISERROR('Barem jedan uneseni član evidencije nema plaćenu članarinu', 16, -1)
        ROLLBACK
        RETURN
    END

16 godina
neaktivan
offline
SQL Server trigger

To je to, radi upravo ono što želim. Hvala {#}

 

što oznaćava 16 i -1 ?

 

edit: skužio

Sex is like Nokia (connecting people), like Nike (just do it), like Pepsi (ask for more) and like Samsung ( everyone is invited)
Poruka je uređivana zadnji put sri 8.1.2014 21:40 (kc-kb).
 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice