Avatar billede sbhansen Nybegynder
28. juni 2001 - 12:16 Der er 6 kommentarer og
2 løsninger

Flytte et felts placering i en tabel

Kort og godt.
Hvordan flytter jeg et felt i rækkefølgen.
Jeg har oprettet et nyt felt, og placeret bagest i rækkefølgen. Nu vil jeg gerne flytte feltet (KOB-ID) op efter feltet AreaCode - dvs. flytte fra en position som felt 24 til felt 18, hvordan dælen...? :-)
Avatar billede terry Ekspert
28. juni 2001 - 12:51 #1
I very much doubt that you can!
But whats the point, the position is only visual.

What you could do is create a new table with the fieleds in the correct order, then copy the data from your old table into th enew. Then delete the old tabel, and rename the new!
Avatar billede sbhansen Nybegynder
28. juni 2001 - 13:03 #2
I need to...
The table is highly complexed and is the very center of our database.
We have a secured csv-file-upload component that occasionaly uploads data, and this component uploads on the field-positions. I hoped to avoid re-coding that component, since currently I upload/modify data in the first 18 fields of the table - and now this field 24 - therefore I also have to include all the data in field 19 through 23, which is what I hoped to avoid. The table holds 600.000 records and massive indexes, which I would be very sad to paste to another table, since our entire service is dependent on this table...

So please anyone - someone must know how to change the physical position of a field in a table... please...?
Avatar billede terry Ekspert
28. juni 2001 - 13:21 #3
In SQL Server 7.0 you can actualy insert a column.

In design mode, mark the column (field) after where you want to insert your new field.. right click on the column marker and then select insert column...
Avatar billede terry Ekspert
28. juni 2001 - 13:28 #4
When you modify a table SQL server quite often creates a temporary table whereafter the old data is copied from the original into the temp. Then it deletes the original and renames the temp. So what I suggested you do, SQL Server would more than likely do this for you anyway but you maybe just wouldnt be aware of the fact.
Try taking a closer look at the scripts which SQL generates when you change a data type and you will see what I mean...
Avatar billede sbhansen Nybegynder
28. juni 2001 - 13:33 #5
I will try and look into that script thing...
Avatar billede torbenkoch Nybegynder
01. juli 2001 - 14:11 #6
Remember though, that you cannot expect the table to be available to the users while you change the table!!
Avatar billede l_lindegaard Nybegynder
03. juli 2001 - 15:21 #7
Jeg ville vælge at bruge et view i dit tilfælde. Ved at lave et view kan du specificere rækkefølgen af dine kolonner som det passer dig uden at ændre ved tabelstrukturen. Fordelen i driftssituationen med et view med navngivne kolonner (ikke *) er at du fremover blot kan tilføje nye kolonner til din tabel uden at det påvirker dit driftssystem.
Avatar billede pierrehusted Nybegynder
24. juli 2001 - 13:55 #8
Hvis det er MSSQL 7 eller højere kan du indsætte et felt og kopiere data derover i.

Du kan så indsætte et nyt felt ved navn f.eks. TMP_FIELD der hvor du vil have det.
Så kopierer du indholdet af KOB-ID til TMP_FIELD
(Update tabel set TMP_FIELD = KOB-ID).
Så ændrer du navnet på det gamle felt til f.eks. OLD_KOB-ID.
Så ændrer du navnet på det nye felt til KOB-ID.
Så fjerner du feltet OLD_KOB-ID.

Det vil være en kort periode hvor feltet KOB-ID ikke er til rådighed...  men hvis dit system kan overleve det, så er det nok metoden.
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