Avatar billede fbpeerj Nybegynder
05. juli 2004 - 13:08 Der er 4 kommentarer og
1 løsning

INSERT kommando

Jeg har lavet en kopi af en del af min database med flg. kommando:
SELECT * INTO db-ptjkopi FROM db-ptj
WHERE DB2TSMP <'1 jan 2003 0:00'

dette laver et nyt register db-ptjkopi og kopierer data ældre end 1. jan 2003 over i det.

Nu vil jeg gerne appende flere data til db-ptjkopi registeret, og benytter flg. kommando.

INSERT db-ptjkopi SELECT * FROM db-ptj
WHERE DB2TSMP >'1 mar 2003 0:00

Jeg får fejl fejl:

Server: Msg 8101, Level 16, State 1, Line 1
An explicit value for the identity column in table 'db-ptjkopi' can only be specified when a column is used and IDENTITY_INSERT is ON.

Når jeg sætte IDENTITY_INSERT ON på registeret db-ptjkopi, får jeg samme fejl.
Avatar billede trer Nybegynder
05. juli 2004 - 20:40 #1
Du kan ikke anvende wildcards når du har en identity kolonne - du skal specificere hver eneste kolonne (samt sætte identity_insert on).

a la

insert into db_ptjkopi (id, bla, bla, bla)
select * from db-ptj
where db2tsmp > '1 mar 2003 00:00'
go

lidt trist hvis du har mange kolonner, men...  sådan er livet.
19. juli 2004 - 15:26 #2
Kan man ikke lave følgende:
select * into db_ptjkopi
from (
SELECT * FROM db-ptj
WHERE DB2TSMP <'1 jan 2003 0:00'
UNION
SELECT * FROM db-ptj
WHERE DB2TSMP >'1 mar 2003 0:00
)
Avatar billede trer Nybegynder
19. juli 2004 - 20:28 #3
Jo - men kun hvis db_ptjkopi ikke findes i forvejen.

Faktisk får du blot en rå tabel uden identity, defaults, constraints etc. Den vil også tillade NULL (på enten alle kolonner eller de kolonner der indeholder NULL værdier - kan ikke helt huske).

Men u bør anvende UNION ALL fremfor UNION når du ved at der ikke kan være dubletter i dine rækker. UNION har en implicit sortering for at fjerne dubletter som er ressourcekrævende - den sparer du ved en UNION ALL.
Avatar billede ejoergensen Nybegynder
02. februar 2005 - 15:33 #4
fbpperj, du har glemt at lukke spørgsmålet1
Avatar billede fbpeerj Nybegynder
03. november 2009 - 19:36 #5
ja jeg har desværre ikke været opmærksom på det.
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



IT-JOB

Metro Service A/S

Erfaren IT-supporter

Metroselskabet og Hovedstadens Letbane

Cyber Security Konsulent

Mobilplan ApS

Content Creator

Politiets Efterretningstjeneste

Bliv AD-specialist hos PET