[ CallMeSaMaster @ 23.12.2007. 23:31 ] @
Da li , i ako da, kako?, moze da se sa jednim statementom brisu podaci iz 2 tabele istovremeneo. On sto sigurno znam jeste da u obje tabele postoji to sto zelim brisati. Znaci imam tabelu "prva" i tabelu "druga". U obje ove tabele postoji kolona koja se zove "tID". Pretpostavimo da postoji tID = 1 u obje tabele.

Kako mogu jednim statementom da obrisem recorde u obje tabele.

Probao sam nesto ovog tipa:

Delete from prva, druga where tID=1 ali ne fercera....
[ M E N E @ 24.12.2007. 07:20 ] @
Tvoj problem je opstiji, ali recimo, ako imas FK iz jedne u drugu, treba da ga deklarises kao CASCADE (on delete)
To bi znacilo ako je PK tID u [T1], a polje tID u [T2] je FK kji referencira [T1], onda kad obrises red u tabeli primarnog kljuca [T1], brisu se SVI REDOVI iz [T2] cije je polje tID=T1.tID iz obrisanog reda

Uh, sad sam procitao i mozda sam malo zbunio, ali nisam slagao :-)
[ Koce @ 24.12.2007. 09:11 ] @
Da, mozes preko spoljnih kljuceva, sa kaskadnim delete, a mozes i preko triggera na delete, al se to odnosi samo ako ti svaki put kad brises iz tab1 treba i brisanje iz tab2! Ako to zelis samo po nekad, onda moras da poses delete iz tab1, pa delete iz tab2, kako drugacije on da zna kad zelis a kad ne?
[ NPGD @ 04.01.2008. 08:25 ] @
Ma kazes mu samo.......
DELETE * FROM t1
Where ID = (DELETE * From t2
Where ID = 1);


Upalice.......valjda..........

Ali nema smisla brsati prvo PK pa onda FK .....nego obrnuto .........

Pozz.........
[ Nebojsa111 @ 11.01.2008. 13:45 ] @
Mozes ovo da resis i upotrebom INSTEAD OF DELETE triggera... Mozes da napises logiku u njemu koja ce se desiti kad obrises nesto iz tabele...

Code:

CREATE TRIGGER trigger1 ON tabela1
INSTEAD OF DELETE
AS
BEGIN
  ...
  ...
END
[ M E N E @ 11.01.2008. 14:14 ] @
hm
onda bolje

after delete

u tabeli1, sto ce znaciti "kad obrises slog u tabeli1, onda..." pa napises sta.
Ali... trigeri su spori