sql >> Database >  >> RDS >> Sqlserver

Het gegevenstype van een kolom wijzigen in SQL Server (T-SQL)

Wanneer u een databasetabel maakt, geeft u alle kolommen en hun gegevenstypen op. Eenmaal gemaakt, is het normaal gesproken niet de bedoeling om deze gegevenstypen te wijzigen. Degene die het schema heeft ontworpen, zou immers goed hebben nagedacht over welk gegevenstype elke kolom zou moeten accepteren.

We weten echter allemaal dat dingen kunnen veranderen. Ondanks onze inspanningen om elk mogelijk scenario te voorzien dat onze database kan treffen, is dat soms niet genoeg.

Dus wat doen we als we Transact-SQL moeten gebruiken om het gegevenstype van een kolom in SQL Server te wijzigen?

We gebruiken de ALTER TABLE statement om het natuurlijk te veranderen.

Voorbeeld

Hier is een voorbeeld van het gebruik van de T-SQL ALTER TABLE statement om het gegevenstype van een kolom te wijzigen:

ALTER TABLE Tasks
    ALTER COLUMN TaskCode char(6);
GO

Dit verandert de tabel met de naam Tasks , door de TaskCode . ervan te wijzigen kolom naar een gegevenstype van char(6) . Merk op dat het niet nodig is om te specificeren wat het gegevenstype gebruikt te zijn - u geeft eenvoudig het nieuwe gegevenstype op en bent ermee klaar. SQL Server doet de rest.

Controleer de resultaten

U kunt het resultaat controleren door INFORMATION_SCHEMA.COLUMNS . op te vragen :

USE Solutions;
SELECT 
    COLUMN_NAME,
    DATA_TYPE,
    CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH,
    CHARACTER_OCTET_LENGTH AS OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Tasks'
AND COLUMN_NAME = 'TaskCode';

Resultaat:

COLUMN_NAME  DATA_TYPE  MAX_LENGTH  OCTET_LENGTH
-----------  ---------  ----------  ------------
TaskCode     char       6           6           


  1. Afkappen (niet ronde) decimalen in SQL Server

  2. Een database lezen vanuit de activamap

  3. Aantal rijen beïnvloed door een UPDATE in PL/SQL

  4. Wat is het verschil tussen de functies RANK() en DENSE_RANK() in Oracle?