Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Brisanje dvije table query

5 views
Skip to first unread message

Lero

unread,
May 29, 2014, 7:01:53 AM5/29/14
to
Dakle,
ima dvije table

A
id_A
.
.
.
B
Id_B
Id_A
.
.
.

ralacija je Id_A
i kako sada obrisati podatke u tabli B
i tabli A sa jednim SQL upitom

MSSQL 2008

Hvala

Cose

unread,
May 29, 2014, 8:27:03 AM5/29/14
to
Napravi trigger da kad brises red u tablici A prvo obrise iz B sve
koji imaju Id_A.

--
Kresimir Kos

"When people are fanatically dedicated to political or religious faiths
or any other kinds of dogmas or goals, it's always because these dogmas
or goals are in doubt." (Zen and the Art of Motorcycle Maintenance)

Bruno Babic

unread,
May 29, 2014, 9:10:15 AM5/29/14
to
On 29.5.2014. 13:01, Lero wrote:
> i kako sada obrisati podatke u tabli B
> i tabli A sa jednim SQL upitom

Ne mozes jednim upitom mijenjati sadrzaj vise od jedne tablice.

--
bbabic(a)globalnet.hr
2b||!2b?

Josip Almasi

unread,
May 29, 2014, 9:14:16 PM5/29/14
to
Microshrot ne bi znao, al to se inace radi kaskadno.
Samo sto cascade delete specificiras kad kreiras tablicu.

Pozdrav...

mt

unread,
Jun 2, 2014, 2:45:43 AM6/2/14
to
"Lero" <zg7...@net.hr> wrote in message news:lm7432$f89$1...@ls237.t-com.hr...
> Dakle,
> ima dvije table
>
> A
> id_A
> .
> B
> Id_B
> Id_A
>
> ralacija je Id_A
> i kako sada obrisati podatke u tabli B
> i tabli A sa jednim SQL upitom
>
> MSSQL 2008
>
> Hvala


Pri formiranju tablica definiras relaciju i kaskadno brisanje/azuriranje:

CREATE TABLE [dbo].[A]
([ID] [uniqueidentifier] NOT NULL,
[Naziv] [nchar](10) NULL,
CONSTRAINT [PK_A] PRIMARY KEY NONCLUSTERED ([ID] ASC) ON [PRIMARY]
) ON [PRIMARY]

CREATE TABLE [dbo].[B]
([ID] [uniqueidentifier] NOT NULL,
[A_ID] [uniqueidentifier] NOT NULL,
[Naziv] [nchar](10) NULL,
CONSTRAINT [PK_B_1] PRIMARY KEY NONCLUSTERED ([ID] ASC) ON [PRIMARY]
) ON [PRIMARY]

ALTER TABLE [dbo].[B] WITH CHECK ADD CONSTRAINT [FK_B_A]
FOREIGN KEY([A_ID]) REFERENCES [dbo].[A] ([ID])
ON UPDATE CASCADE
ON DELETE CASCADE

U primjeru gornje definicije kada obrises stavku u tablici A
(npr. DELETE FROM A WHERE ...)
kaskadno ce se obrisati i sve stavke u tablici B koje su
relacijski vezane s tablicom A (gdje je B.A_ID = A.ID).

Bruno Babic

unread,
Jun 2, 2014, 10:26:42 AM6/2/14
to
Uz svo kaskadiranje, koje podrazumijeva da imas strukturu baze takvu
kakvu sigurno nemas, zasto nebi napravio jednostavnu transakciju od dva
upita?
Cak bi se to trebalo izvrsiti brze nego nekakvo kaskadno brisanje.

--
bbabic(a)globalnet.hr
2b||!2b?

Lero

unread,
Jun 5, 2014, 11:17:03 AM6/5/14
to Bruno Babic
On 02.06.2014 16:26, Bruno Babic wrote:
> Uz svo kaskadiranje, koje podrazumijeva da imas strukturu baze takvu
> kakvu sigurno nemas, zasto nebi napravio jednostavnu transakciju od dva
> upita?
> Cak bi se to trebalo izvrsiti brze nego nekakvo kaskadno brisanje.
>
Hvala svima na savjetima :)
odlucio sam se za dva jednostavna upita
(ovaj put), a za ubuduce mi se najvise
svidja triger.

lp

---
U ovoj e-pošti nema virusa i zlonamjernih programa jer je aktivna avast! antivirusna zaštita.
http://www.avast.com

Bruno Babic

unread,
Jun 5, 2014, 11:31:29 AM6/5/14
to
On 5.6.2014. 17:17, Lero wrote:
> Hvala svima na savjetima :)
> odlucio sam se za dva jednostavna upita
> (ovaj put), a za ubuduce mi se najvise
> svidja triger.

Pazi, napisao sam "transakciju". Dakle, ne dva odvojena upita, nego dva
upita u jednoj transakciji tako da, u slucaju problema, mozes napraviti
rollback.

--
bbabic(a)globalnet.hr
2b||!2b?

Lero

unread,
Jun 5, 2014, 11:45:32 AM6/5/14
to Bruno Babic
On 05.06.2014 17:31, Bruno Babic wrote:
> On 5.6.2014. 17:17, Lero wrote:
>> Hvala svima na savjetima :)
>> odlucio sam se za dva jednostavna upita
>> (ovaj put), a za ubuduce mi se najvise
>> svidja triger.
>
> Pazi, napisao sam "transakciju". Dakle, ne dva odvojena upita, nego dva
> upita u jednoj transakciji tako da, u slucaju problema, mozes napraviti
> rollback.
>
Naravno
0 new messages