När du skapar en databastabell anger du alla kolumner tillsammans med deras datatyper. När de väl har skapats finns det normalt ingen avsikt att ändra dessa datatyper. När allt kommer omkring skulle den som utformade schemat ha tänkt mycket på vilken datatyp varje kolumn ska acceptera.
Men vi vet alla att saker och ting kan förändras. Trots våra bästa ansträngningar för att försöka förutse alla möjliga scenarion som kan drabba vår databas, räcker det ibland inte.
Så vad gör vi om vi behöver använda Transact-SQL för att ändra datatypen för en kolumn i SQL Server?
Vi använder ALTER TABLE
uttalande för att ändra det naturligtvis.
Exempel
Här är ett exempel på hur du använder T-SQL ALTER TABLE
uttalande för att ändra datatypen för en kolumn:
ALTER TABLE Tasks ALTER COLUMN TaskCode char(6);GO
Detta ändrar tabellen som heter Tasks
, genom att ändra dess TaskCode
kolumnen till en datatyp char(6)
. Observera att det inte finns något behov av att ange vilken datatyp som används vara – du anger helt enkelt den nya datatypen och är klar med den. SQL Server gör resten.
Kontrollera resultaten
Du kan kontrollera resultatet genom att fråga INFORMATION_SCHEMA.COLUMNS
:
ANVÄND lösningar;VÄLJ COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH SOM MAX_LENGTH, CHARACTER_OCTET_LENGTH SOM OCTET_LENGTHFROM INFORMATION_SCHEMA.COLUMNSWHERE TABLE_NAME ='Tasks'AND 'Tpre>COLUMN_NAME =';CodeResultat:
COLUMN_NAME DATA_TYPE MAX_LENGTH OCTET_LENGTH----- ---------- ---------- ------------TaskCode char 6 6