Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So ändern Sie den Datentyp einer Spalte in SQL Server (T-SQL)

Wenn Sie eine Datenbanktabelle erstellen, geben Sie alle Spalten zusammen mit ihren Datentypen an. Einmal erstellt, besteht normalerweise keine Absicht, diese Datentypen zu ändern. Wer auch immer das Schema entworfen hat, hätte schließlich viel darüber nachgedacht, welchen Datentyp jede einzelne Spalte akzeptieren sollte.

Wir alle wissen jedoch, dass sich die Dinge ändern können. Trotz unserer Bemühungen, jedes mögliche Szenario vorherzusehen, das unsere Datenbank treffen könnte, reicht das manchmal nicht aus.

Was tun wir also, wenn wir Transact-SQL verwenden müssen, um den Datentyp einer Spalte in SQL Server zu ändern?

Wir verwenden die ALTER TABLE Anweisung, es natürlich zu ändern.

Beispiel

Hier ist ein Beispiel für die Verwendung von T-SQL ALTER TABLE Anweisung zum Ändern des Datentyps einer Spalte:

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

Dadurch wird die Tabelle mit dem Namen Tasks geändert , indem Sie seinen TaskCode ändern -Spalte auf einen Datentyp von char(6) . Beachten Sie, dass es nicht erforderlich ist, den verwendeten Datentyp anzugeben to be – Sie geben einfach den neuen Datentyp an und fertig. SQL Server erledigt den Rest.

Überprüfen Sie die Ergebnisse

Sie können das Ergebnis überprüfen, indem Sie INFORMATION_SCHEMA.COLUMNS abfragen :

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';

Ergebnis:

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