sql >> Databasteknik >  >> RDS >> Sqlserver

Konvertera datatyp Char till Nvarchar

Att välja från INFORMATION_SCHEMA.COLUMNS är ett bra sätt att avgöra vilka kolumner som behöver konverteras,

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'CHAR';

Men det kan inte användas för att direkt ändra en kolumns datatyp. ÄNDRA TABELL används för att ändra kolumndatatyper:

ALTER TABLE [dbo].[TableName] ALTER COLUMN [ColumnName] NVARCHAR(50);

Medan du håller på bör du undvika att använda NVARCHAR(MAX) om det inte är absolut nödvändigt. Se till att dina datatyper är anpassade till attributet. Om din CHAR kolumner redan har rätt storlek, använd följande skript för att generera ALTER TABLE uttalanden:

SELECT  'ALTER TABLE ' +
        QUOTENAME(TABLE_SCHEMA) + '.' +
        QUOTENAME(TABLE_NAME) +
        ' ALTER COLUMN ' +
        QUOTENAME(COLUMN_NAME) +
        ' NVARCHAR(' +
        CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR(4)) + ');'
FROM    INFORMATION_SCHEMA.COLUMNS
WHERE   DATA_TYPE = 'char';

Tänk på att detta bara genererar ALTER TABLE-satserna, du måste kopiera resultaten och köra på en ny flik för att ändra datatyperna.



  1. Golang, mysql:Fel 1040:För många anslutningar

  2. mysql infoga om det inte finns utan unik nyckel

  3. Hitta alla postnummer inom angivet avstånd från ett postnummer

  4. SQL:gruppera efter från annan tabell och invertera resultatet