Jag har ett artikelregister i en SQL2000 i en tabell som heter: tbl_Products. Denna tabell är en 'Master' tabell dvs den skall pappa till alla andra tabeller.
Nu vill jag ha några 'Child' tabeller som innehåller några av de fälten som finns i 'Master' tabellen.
Alltså..
Om jag uppdaterar någonting i Master tabellen så skall det även uppdateras i Child tabellen., är ni med ?
Det måste ju finnas någon inbyggd funktion för detta i SQL 2000, typ länkad tabell eller något ?
säg till om ni vill att jag utvecklar min fråga :))
/tobias
------------------
the man with the golden bottle..
Nu förstår jag inte riktigt. Grundiden med en relationsdatabas är ju att man bara lagrar informationen på ett ställe.
Det enda som ska finnas duplicerat är de nycklar som sammanbinder posterna och nycklar skall man ju aldrig uppdatera (Det kan man i och för sig hantera med hjälp av on update cascade när man definierar sina foreign keys).
Om man nu vill att en uppdatering leder till en uppde/insert i en annan tabell så kan man skapa en trigger för det ändamålet eller så hanterar man det själv och då enklast i en stored procedure.
------------------ essentitia preter non sans multiplicandum
Alla kolumner har samma datatyp och längd i båda tabellerna.
Några frågor...
1. I Vilken tabell skall jag skapa relationen (tbl_Products, tbl_Test)?
2. Alla kolumner skall ju inte ha någon relation utan bara vara vanliga celler, kan jag lägga till med INSERT där relation saknas?
3. Viken tabell skall vara Primary key table resp Foreign key table?
4. Vilka av dessa skall vara ikryssade:
Check existing data on creation
Enforce relationship for replication
Enforce relationship for INSERTs and UPDATEs
Cascade Update Related Fields
Cascade Delete Related Fields
Då kan man hantera att en artikel har ett godtyckligt antal priser. I och med
att du har en foreign key koppling mellan tabellerna så går det inte att stoppa in
ett värde i col_articleNo i tabellen articlePrices om inte motsvarande värde finns
i tabellen articles.
Alternativt kan man i den senare tabelldefinitionen lägga till
Det innebär att om man tar bort en post från tabellen articles så kommer
de poster i articlePrices som har samma col_articleNo också att tas bort.
Om man inte anger on delete cascade så får man ett fel om man försöker
ta bort en post från articles och det finns en post med det värdet i
articlePrices.
On update cascade fungerar analogt.
Hur det här hänger ihop med de kryssrutor du beskrev vet jag inte. Jag kan bara SQL.
------------------ essentitia preter non sans multiplicandum
hmm.. okej.. får det att fungera ok nu, när jag går in och updaterar eller tar bort ur min master tabell så ändras/tas det bort även i min andra tabell.. vilket är schysst :))
Ytterligate frågor,
Hur många tabeller kan jag ha en relation till, finns det någon gräns?
Det verkar inte funka om jag lägger till något i min master databas så läggs det inte till i min child databas?
okej.. det är ju konstigt att inte det finns.. det får dom fixa.. aja..
Hur löser jag det smidigast?
Kan jag använda en trigger eller något som när det läggs in något i Master tabellen, läser från en lista namnen på de tabeller där samma information skall läggas in?
Har du någon länk eller något till en tutorial med såna grejer.. Har bara använt SELECT, DELETE och UPDATE innan :)