Avatar billede hugopedersen Nybegynder
20. september 2001 - 08:54 Der er 6 kommentarer og
1 løsning

Insert

Jeg har en tabel med nogle numre som jeg gerne vil indsætte i en anden tabel. Det tricky er at det godt kan ske at disse numre allerede eksisterer i destinationstabellen. Når min stored procedure når til sådan en, så stopper den og går ikke videre til næste record i sourcetabellen.
Det jeg gør er at jeg opretter nogle værktøjsnumre i en midlertidig tabel og så overfører dem til den rigtige tabel bagefter. Jeg gør det på denne måske lidt underlige måde for at brugere kan oprette numre både som en serie og som et enkelt nummer. Hvis så et nummer i en længere serie er oprettet som et enkelt nummer midt i denne, dur det ikke at jeg bare overskriver den.
Avatar billede terry Ekspert
20. september 2001 - 08:56 #1
so whats the question Hugo?
Avatar billede slash Nybegynder
20. september 2001 - 08:58 #2
hva er spørgsmålet??? men du kan sikkert løse det vha. løkker!
Avatar billede seider Nybegynder
20. september 2001 - 08:59 #3
du laver en outer join på den fletning.

select * from tabel 1
where * not in tabel 2

dem du så har rykket fra 1 er ikke i 2 og den liste fletter du så bare.

www.fotx.net/seider
Avatar billede hugopedersen Nybegynder
20. september 2001 - 09:02 #4
Spørgsmålet er :
Hvordan får jeg min stored procedure til at fortsætte med næste record når forsøger at indsætte et nummer der allerede eksisterer i destinationstabellen ?
Avatar billede seider Nybegynder
20. september 2001 - 09:53 #5
ja netop på denne måde, prøv at følge mig.

1 du udvælger dem der er i begge tabeller A+B
2 du udvælger dem der ikke er i den første udvægelse fra tabel A =/= A+b
3 du tilføjer disse til tabel B

række følgen er faktisk 213 men det ser du

inser into B <felt navn> from A where
<felt navn> in {
  select * from A where
    <felt navn> not in {select <felt navn> from B}}

query analyseren optimere den, da den ikke er optimal

og de hårde paranteser er måske bløde jeg kan ikke det huske det.

www.fotx.net/seider
Avatar billede hugopedersen Nybegynder
20. september 2001 - 10:10 #6
Min procedure kommer så til at se ud som Alter Procedure procAppendNewNumbers

AS

INSERT into tblToolNbrs(fldRegNbr, fldRecycle, fldRecycleText, fldAddDate, fldAddBy)
SELECT fldRegNbr, fldRecycle, fldRecycleText, fldAddDate, fldAddBy FROM tblTempNbrs WHERE * NOT IN tblToolNbrs

Men det virker ikke !  Jeg får en fejl \'near *\'
Avatar billede hugopedersen Nybegynder
20. september 2001 - 10:26 #7
Hej igen seider

Jeg fandt \'fejlen\' og det virker nu - tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester