[MS sql2005] relacje - problem
PAblo - 27-06-2007 00:04
[MS sql2005] relacje - problem
Witam Mam takie pyanie. Czy jest możliwośc ustawienia takiej relacji że: usuniecie rekordu z kluczem głównym w tabeli X ustawi NULL w tabeli Y z kluczem obcym? (Relacja X.ID_X=klucz główny - Y.ID_X). Z gory dzieki za odpowiedzi
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
wloochacz - 27-06-2007 00:04
[ciach] > Mam takie pyanie. Czy jest możliwośc ustawienia takiej relacji że: usuniecie > rekordu z kluczem głównym w tabeli X ustawi NULL w tabeli Y z kluczem obcym? > (Relacja X.ID_X=klucz główny - Y.ID_X). > Z gory dzieki za odpowiedzi
Alter table [Entity2] add foreign key([parent_id]) references [Entity1] ([id]) on update cascade on delete Set Null
Źródło: SQL Server 2005 Books Online Cascading Referential Integrity Constraints
url: ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/54ca1d10-5106-4340-bde4-480b83e7e813.htm
-- wloochacz
PAblo - 27-06-2007 00:04
> [ciach]
> Alter table [Entity2] add foreign key([parent_id]) references [Entity1] > ([id]) on update cascade on delete Set Null
dzieki. Robiłem to poprzez Management Studio express i program ten w ogole nie odswiezał tabeli po dokonaniu takich operacji - zamiast NULL mialem wciaz dane w polu z kluczem obcym - rozumiem ze programik ten wykonuje operacje na kursorze po stronie klienta, ale żeby 'odśwież' nie działało to juz chyba przesada. JEst jakas opcja by to poprawić??
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Adam =?iso-8859-2?Q?Wi=B6niecki?= - 27-06-2007 00:04
On 2007-06-26, wloochacz <wl@no.spam> wrote: > [ciach] >> Mam takie pyanie. Czy jest możliwośc ustawienia takiej relacji że: usuniecie >> rekordu z kluczem głównym w tabeli X ustawi NULL w tabeli Y z kluczem obcym? >> (Relacja X.ID_X=klucz główny - Y.ID_X). >> Z gory dzieki za odpowiedzi > > Alter table [Entity2] add foreign key([parent_id]) references [Entity1] > ([id]) on update cascade on delete Set Null > > Źródło: > SQL Server 2005 Books Online > Cascading Referential Integrity Constraints
Dobrze jest zacytować jeszcze fragment o ograniczeniach. Są one troche mniejsze niż sql 2000 ale nadal brakuje dużo do elastyczności jaką oferuję np. prosty firebird. W praktyce, w większości przypadków kończy się na pisaniu wyzwalaczy "instead of" :(
The series of cascading referential actions triggered by a single DELETE or UPDATE must form a tree that contains no circular references. No table can appear more than one time in the list of all cascading referential actions that result from the DELETE or UPDATE. Also, the tree of cascading referential actions must not have more than one path to any specified table. Any branch of the tree is ended when it encounters a table for which NO ACTION has been specified or is the default.
-- Adam Wiśniecki
wloochacz - 28-06-2007 00:01
[ciach] > Dobrze jest zacytować jeszcze fragment o ograniczeniach. Są one > troche mniejsze niż sql 2000 ale nadal brakuje dużo do elastyczności > jaką oferuję np. prosty firebird. W praktyce, w większości przypadków > kończy się na pisaniu wyzwalaczy "instead of" :( True; w ogóle Firebird ma baaardzo przyjemny SQL :-) A zupełną porażką, jak dla mnie, jest to że MS SQL co prawda dopuszcza takie cascade updates, ale tylko jedno (sic!) na tabelę... no ja pierdykam... Osobiście mam FK zrealizowane za pomocą triggerów, nie są to instead of, ponieważ te sa upierdliwe przy refaktoringu bazy.
-- wloochacz
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
mysql i mysql-front, problem
String line; if (line=="cos"){...}....problem
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
[postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?=
[oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?=
Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ]
[PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ?
[MySQL] Problem z zapisem danych w bazie danych
Problem z mysql - can't connect to MySQL/nietypowo...
zanotowane.pldoc.pisz.plpdf.pisz.pllunadance.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|