Avatar billede kenzo Nybegynder
06. oktober 2001 - 20:21 Der er 3 kommentarer og
1 løsning

T-SQL til kopi af post

Hej!

Jeg skal oprette en kopi af en eksisterende post i en tabel. Tabellen har over 100 felter, og jeg er derfor ikke interesseret i først at fetche alle værdierne, og derefter bruger INSERT INTO tabellen.
Inden min kopi af posten indsættes i tabellen igen, skal jeg ændre nogle få felter, f.eks. nøglen.

Kan jeg bruge SELECT INTO? Kan jeg evt. bruger en TEMP tabel?
Jeg kører MSSQL7

Et eksempel ville være lige i øjet ;-)

/Tommy
Avatar billede z42cool Nybegynder
06. oktober 2001 - 20:54 #1
Hvis du skal lave en kopi af alle felter (vær opmærksom på at dette kræver at du ingen identity felter og ingen unikke felter har) så kan du bruge følgende:

INSERT INTO your_table_name
SELECT *
FROM your_table_name
WHERE (some_where_clause)
Avatar billede kenzo Nybegynder
06. oktober 2001 - 21:12 #2
Jeg har unikke felter, samt timestamp felt.
Avatar billede z42cool Nybegynder
06. oktober 2001 - 21:17 #3
Du kan ikke kopiere en række hvis tabellen indeholder unikke felter da disse jo kun må optræde en gang! Timestamp feltet er ikke noget problem, idet jeg antager at det er et felt af typen datetime der blot har GETDATE() som default værdi.
Avatar billede kenzo Nybegynder
06. oktober 2001 - 21:28 #4
OK. TAK...
Jeg har ændret det til
INSERT INTO MY_TABLE
(FELT1, FELT2...., FELT120)
SELECT
\'NEW_KEY\', FELT2, FELT3, \'NYVÆRDI\'..., FELT120 FROM MY_TABLE
WHERE (asasdf=asdfsadf)
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