"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).