Når du opretter en databasetabel, angiver du alle kolonner sammen med deres datatyper. Når først oprettet, er der normalt ikke nogen intention om at ændre disse datatyper. Når alt kommer til alt, ville den, der har designet skemaet, have tænkt meget over, hvilken datatype hver eneste kolonne skal acceptere.
Vi ved dog alle, at tingene kan ændre sig. På trods af vores bedste indsats for at forsøge at forudse alle mulige scenarier, der kan ramme vores database, er det nogle gange ikke nok.
Så hvad gør vi, hvis vi skal bruge Transact-SQL til at ændre datatypen for en kolonne i SQL Server?
Vi bruger ALTER TABLE
erklæring for at ændre det selvfølgelig.
Eksempel
Her er et eksempel på brug af T-SQL ALTER TABLE
sætning for at ændre datatypen for en kolonne:
ALTER TABLE Opgaver ALTER COLUMN TaskCode char(6);GO
Dette ændrer tabellen kaldet Tasks
, ved at ændre dens TaskCode
kolonne til en datatype char(6)
. Bemærk, at det ikke er nødvendigt at angive, hvilken datatype brugte at være – du angiver blot den nye datatype og er færdig med den. SQL Server klarer resten.
Tjek resultaterne
Du kan kontrollere resultatet ved at forespørge INFORMATION_SCHEMA.COLUMNS
:
USE Solutions;SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH, CHARACTER_OCTET_LENGTH AS OCTET_LENGTHFROM INFORMATION_SCHEMA.COLUMNSWHERE TABLE_NAME ='Opgaver'AND 'Task_NAME =';CodeResultat:
COLUMN_NAME DATA_TYPE MAX_LENGTH OCTET_LENGTH---------------- ---------- ---------- ------------Opgavekode char 6 6