SQL Server - script to update database columns from varchar to nvarchar if not already nvarchar

前端 未结 5 1760
南笙
南笙 2020-12-16 19:02

I am in a situation where I must update an existing database structure from varchar to nvarchar using a script. Since this script is run everytime a configuration applicati

5条回答
  •  粉色の甜心
    2020-12-16 19:26

    Fixed the space issue and added schema

    SELECT 'ALTER TABLE [' + isnull(schema_name(syo.object_id), sysc.name) + '].[' +  syo.name 
        + '] ALTER COLUMN ' + syc.name + ' NVARCHAR(' + case syc.max_length when -1 then 'MAX' 
            ELSE convert(nvarchar(10),syc.max_length) end + ');'
       FROM sys.objects syo
       JOIN sys.columns syc ON
         syc.object_id= syo.object_id
       JOIN sys.types syt ON
         syt.system_type_id = syc.system_type_id
        JOIN sys.schemas sysc ON
        syo.schema_id=sysc.schema_id
       WHERE 
         syt.name = 'varchar' 
        and syo.type='U'
    

提交回复
热议问题