Avatar billede kirkholt Nybegynder
19. september 2003 - 12:23 Der er 2 kommentarer

Forøge størrelsen af tekstfelt

Hej

Kan man forøge størrelsen af et tekstfelt fra char(10) til char(20) med et "ALTER TABLE" statement.
Felter er Primary Key.

Giv gerne eksempel.
Avatar billede meku Nybegynder
19. september 2003 - 13:23 #1
Det kan man godt, men man bliver nødt til at slette tabellen og oprette den igen
F.eks således hvor tabellen hedder test og kolonnen hedder tekst:

CREATE TABLE dbo.Tmp_test
    (
    tekst char(20) NOT NULL
    )  ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.test)
    EXEC('INSERT INTO dbo.Tmp_test (tekst)
        SELECT tekst FROM dbo.test TABLOCKX')
GO
DROP TABLE dbo.test
GO
EXECUTE sp_rename N'dbo.Tmp_test', N'test', 'OBJECT'
GO
ALTER TABLE dbo.test ADD CONSTRAINT
    PK_test PRIMARY KEY CLUSTERED
    (
    tekst
    ) ON [PRIMARY]

GO
Avatar billede venne Nybegynder
19. september 2003 - 14:03 #2
Det er ikke nødvendigt at droppe tabellen. Det bør kunne klares med:

ALTER TABLE t DROP CONSTRAINT PK_t
ALTER TABLE t ALTER COLUMN c CHAR(20) NOT NULL
ALTER TABLE t ADD CONSTRAINT PK_t PRIMARY KEY CLUSTERED (c)

Hvis der er foreign keys mod denne tabels PK skal de selvfølgelig også droppes først.
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