28. juni 2001 - 12:16Der 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...? :-)
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!
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...?
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...
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...
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.
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.
Synes godt om
Ny brugerNybegynder
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.