26. juni 2001 - 14:59Der er
8 kommentarer og 1 løsning
Autonummer forsvandt!!
Har en database på en MS SQL server. Efter noget vedlikehold på denne server er nogen felter i et par af tabellerne blevet omgjort fra BIGINT/AUTONUMMER til bare at være BIGINT. Det siger sig selv at dette giver problemer.
Så mit spørgsmål : Er det muligt at lave en \"ALTER TABLE\" på en måde, sådan at disse felter får sin autonummer funktion igen, og samtidig starter autonummer fra \"højeste verdi+1\"
Det kan vel give problemer - det gør det i mysql :) Prøv derfor
Lav et nyt felt, som er primary key og autonummer, med et nyt navn. Opdater derefter med update tabelnavn set nytfelt=gammelfelt slet den gamle, og omdøb evt.
Nej nej, prøvede lige i Mysql. Så får du jo tal på feltet. Problemet er at et (i Mysql) felt som er autonummer skal være primary key, og så må den jo ikke starte med null-værdier, og heller ikke tal... hmm - prøver lige noget andet
ALTER TABLE test CHANGE COLUMN id INT(11) AUTO_INCREMENT
til at virke. Jeg får fejlen :
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'
[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword \'COLUMN\'.
Men et alternativ er jo, som du siger, at oprette en ny kolonne, og kopiere alle IDer over i denne, og så slette den gamle kolonne. Men da må jeg ændre navnet på den nye kolonne, når jeg har slettet den gamle. Er det muligt?
Det hedder i hvert fald ikke auto_increment i MsSql. Resten af ALTER-syntaksen er så åbenbart også anderledes. Jeg ved ingenting om MsSql, men ville bare prøve at hjælpe dig i den rigtige retning.
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.